Hello Russell,
As the merge window is over, and hopefully there are no more serious
regressions in the ARM land :-), maybe you'll find time to look into these
small cleanups...
The rationale is the same:
During KDB FIQ patches review you mentioned that I should not introduce
another FIQ_START. It seems that in v3.6-rc the FIQ_START issue was
somewhat band-aided, i.e. machines don't necessary need to define this
stuff any longer, but I also read the background of the issue, and you
once said that you don't want the FIQ subsystem to mess with genirq.
It is surely makes sense as FIQs are arch-specific, plus FIQs are special
in that way that platform makers are free to connects device directly
to the FIQ line, avoiding IC routing, and then enable_fiq(<IRQ>) would
look awkward, at the best.
So, given that, it seems that the only entity that knows for sure how
the particular FIQ is routed is whoever claims the FIQ and fills-in the
fiq_handler struct. It might make sense to introduce disable/enable
callbacks in the fiq_handler struct, and then prototypes for disable/
enable FIQ calls would look like this:
enable_fiq(struct fiq_handler *fh);
disable_fiq(struct fiq_handler *fh);
I.e. completely abstracted from the genirq.
Although, to not duplicate IC code, I think it's pretty legitimate to
call genirq functions iff the caller knows for sure that FIQ comes from
IRQ line and it is is routed through the well-known platform IC.
In that case (which is a majority), the typical user would do this:
static int irq_line;
void foo_enable_fiq(struct fiq_handler *fh)
{
enable_irq(irq_line);
}
static struct fiq_handler foo_fiq = {
.name = "foo",
.enable_fiq = foo_enable_fiq,
};
claim_fiq(&foo_fiq);
enable_fiq(&foo_fiq);
Obviously, it's needless indirection, so I don't do this. If we ever
pass 'foo_fiq' to some device, which does not know all the routing
details, then it would make sense to introduce it, but not now.
So, the patch set is pretty straightforward:
- Get rid of FIQ_START. Nobody but platform-specific code (and drivers)
should know the details about which interrupt can be routed to FIQ
and which cannot;
- Remove disable/enable_fiq() calls from the FIQ subsys (the calls can
be reintroduced w/ new prototypes when/if needed).
Does the approach make sense?
Thanks!
--
arch/arm/include/asm/fiq.h | 2 -
arch/arm/include/asm/mach/irq.h | 7 +++-
arch/arm/kernel/fiq.c | 37 +++++--------------
arch/arm/kernel/irq.c | 2 -
arch/arm/mach-omap1/include/mach/irqs.h | 4 --
arch/arm/mach-rpc/dma.c | 4 +-
arch/arm/mach-rpc/include/mach/irqs.h | 8 ++--
arch/arm/mach-rpc/irq.c | 21 ++---------
arch/arm/mach-s3c24xx/include/mach/irqs.h | 3 --
arch/arm/plat-mxc/avic.c | 5 ---
arch/arm/plat-mxc/include/mach/irqs.h | 2 -
arch/arm/plat-mxc/tzic.c | 5 ---
arch/arm/plat-s3c24xx/irq.c | 6 +--
.../media/platform/soc_camera/mx1_camera.c | 6 +--
sound/soc/fsl/imx-pcm-fiq.c | 4 +-
15 files changed, 31 insertions(+), 85 deletions(-)
== Deepak Saxena <dsaxena> ==
=== Highlights ===
* Finishing up Connect session planning
* Continued work on cleaning up existing BPs
* Working on breaking down single zImage work into BPs
* Completed https://wiki.linaro.org/WorkingGroups/Kernel/BlueprintProcess
* Created new roadmap card for eMMC 4.6 PM work
* Various emails and discussions on roadmap/BP process.
=== Plans ===
* Closeout on creating Android upstreaming roadmap cards
* Start work on Android Upstreaming slides for Connect
* Sort out Connect scheduling for KWG sessions
* Usual BPs, meetings, etc...
== Issues ===
=== Travel/Time Off ===
* Off this Friday Oct, 19th
* Connect Copenhagen
=== Highlights ===
* KVM/ARM VGIC state saving and restoring implementation.
KVM is a big new picture to me and i spent a lot time to read docs
and codes to
better understand it and setup test and debug environment.
For this week, i mainly completed reading both vgic code and qemu
in-kernel vgic implmentation code
for trying to know better what exactly states need to save and
restore for vgic and how save/restore works in system.
Since the kvm and qemu system is big, probably i need one more week
to know better on what's going on
on the whole process of virtual irq handling process via vgic.
I feel regret for the show process about this work.
* Help Reviewed [PATCH] flexcan: disable bus error interrupts for the
i.MX28. from Wolfgang Grandegger.
The issue was caused by an abnormal behavior of IP that it can not
generate rx/tx warning interrupt, finally
we found it's IC HW issue with our IP module owner's help that for
mx25/35/53 the rx/tx interrupt line actually
are not connected to ARM.
* Sent a simple regmap core fix patch:
[PATCH 1/1] regmap: select REGMAP if REGMAP_MMIO and REGMAP_IRQ enabled
Attendees: Alex Lemberg, Arnd Bergmann, Balaji TK, Jakub Pavelek, Luca
Porzio, Venkatraman S
(#linaro-storage: alex, arnd, balajitk, Xruxa, lupo, svenkatr)
Discussion Notes:-
1. Mini review of f2fs filesystem
* Limitation: Can only deal with power of 2 erase blocks
* Limitation: Needs 6 concurrent erase blocks - low end SD cards
might not have that many
* Good review in LWN; yet to read complete source code
2. Linaro Connect planning
* Need to shuffle around sessions due to limitation and travel logistics
* 3 sessions proposed.
** f2fs review
*** Need to confirm participation from Samsung, and
whether any BPs
will come out of the review.
*** Good to have benchmarking done by Linaro folks
(svenkatr -todo)
** eMMC4.6 features
*** Needs Jedec membership, should be made as private
/ invite only meeting
** Swap on flash
*** Will be a private session due to time constraints
* Further discussions over email on Connect session scheduling / logistics.
3. Need to change the weekly meeting time to account for Friday
holiday for Alex - to be discussed at Connect.
Regards,
Venkat.
==== Activity Summary ====
* Completed implementing review comments from lee Jones, patch
underwent enough optimization
* Discussion and internal review with lee Jones regarding review comments
* Spent some time on testing, observed expected interrupts from
fuel-gauge driver
==== Plan ====
* Implementing Legacy platform data support to co-exist with DT bindings.
==== Issues ====
-- NA --
Hello Pekka,
Just a few updates to vmevents:
- Some cleanups and refactorings -- needed for easier integration of
'memory pressure' work;
- Forward to newer Linus' tree, fix conflicts.
For convenience, the merge commit and all the patches can be pulled from
this repo:
git://git.infradead.org/users/cbou/linux-vmevent.git tags/vmevent-updates
Thanks,
Anton.
I think the actual intent was to report the number of used swap pages, not
just total swap size.
This patch fixes the issue.
Signed-off-by: Anton Vorontsov <anton.vorontsov(a)linaro.org>
---
mm/vmevent.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/vmevent.c b/mm/vmevent.c
index 1c2e72e..a059bed 100644
--- a/mm/vmevent.c
+++ b/mm/vmevent.c
@@ -46,7 +46,7 @@ static u64 vmevent_attr_swap_pages(struct vmevent_watch *watch,
si_swapinfo(&si);
- return si.totalswap;
+ return si.totalswap - si.freeswap;
#else
return 0;
#endif
--
1.7.12.1
Hi all,
Some time ago KOSAKI Motohiro noticed[1] that vmevent might be very
inaccurate (up to 2GB inaccuracy on a very large machines) since per CPU
stats synchronization happens either on time basis or when we hit stat
thresholds.
KOSAKI also told that perf API might be a good inspirations for further
improvements, but I must admit I didn't fully get the idea, although I'm
open to investigate this route too, but I guess it needs a bit more
explanations.
Also note that this is just an RFC, I just show some ideas and wonder how
you feel about it. Since we now use memory pressure factor bolted into the
reclaimer code path, we don't desperately need the accurate stats, but
it's still nice thing to have/fix.
Anyway, here we take two approaches:
- Asynchronously sum vm_stat diffs and global stats. This is very similar
to what we already have for per-zone stats, implemented in
zone_page_state_snapshot(). The values still could be inaccurate, but
overall this makes things better;
- Implement configurable per CPU vmstat thresholds. This is much more
powerful tool to get accurate statistics, but it comes with a price: it
might cause some performance penalty as we'd update global stats more
frequently (in a fast path), so users have to be careful.
The two items are independent, so we might implement one or another, or
both, or none, if desired. ;-)
Thanks,
Anton.
p.s. Note that the patches are against my vmevent tree, i.e.:
git://git.infradead.org/users/cbou/linux-vmevent.git
[1] http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/00062.html
== Linus Walleij linusw ==
=== Highlights ===
* Sent a second pull request to Torvalds for the v3.7 pinctrl
patches that involved the simplified irqdomain. Torvalds
pulled it in.
* SPARSE_IRQ patch set ready to be pulled into ARM
SoC when the merge window ends. Might need some
rebasing and editing.
* Back ported regmap MMIO from v3.5 to the internal v3.4
branch to help development of upstream kernel compliant
features.
* Resolved the issues around runtime PM / suspend and
resume proper in the PL022 driver (and others). Planned
a runtime PM session @connect with Ulf and Amit.
* Reviewed the second iteration of Synaptics' RMI4 patch
set.
* Reviewed, slammed, got a v2 and eventually merged the
pinctrl refactoring patches from Tomasz for the Samsung
platforms.
* Pulled in Jean-Christophe's AT91 pinctrl patch set,
had it explode in next and request it to be rebased for
inclusion past v3.7-rc1 or so.
* Submitted and fixed up a patch deleting the "Nomadik"
FSMC driver and replacing it with the one from SPEAr
just named fsmc_nand.c. Fixed up breakage after a
clash with a patch from Jean-Christophe.
* Reviewed Vipin Kumar's FSMC patch set digging around
details of userspace buffer mapping and why it doesn't
work.
* Reviewed a bunch of U9540 patches from Lee Jones
internally before sending them out to the public lists.
Debate continues on the lists.
* Hunted some regressions and fixups, git them out the
door.
=== Plans ===
* Test the PL08x patches on the Ericsson Research
PB11MPCore and submit platform data for using
pl08x DMA on that platform.
* Look into other Ux500 stuff in need of mainlining...
using an internal tracking sheet for this.
* Look into regmap. Try something out, get to know it.
=== Issues ===
* Some internal time stealing, for example ST-Ericsson
career development has taken some time this week.
Thanks,
Linus Walleij
hi
For A15 and A7, there three kinds of usage model.
1. the cluster switch
i found that there is the reference code about the switcher. So does
linaro has any development based on it?
2. cpu migration
It seems that only members can get the early code. Is that right?
3. MP mode
I find a git "http://git.linaro.org/git/arm/big.LITTLE/mp.git". So
does it contains the latest development of big and little system MP
mode?
Thanks.