== Linus Walleij linusw ==
=== Highlights ===
* Send a pull request to Linus Torvalds for pin control updates,
it was duly pulled in for v3.5-rc3.
* Sent of a pull request to the ARM SoC maintainers for a bunch
of Nomadik updates.
* Spend some time funneling back the pinctrl updates and ux500
patches for pin control to ST-Ericssons internal development
track. Also synchronized the PL022 SPI driver in both directions,
submitting patches externally and internally. This will take some
more time still.
* Discussed and iterated device tree patches for Nomadik I2C.
Also ACKed Alessandros patches to move the controller to
the AMBA bus (so it can be reused in ST Microelectronics
products).
* Poked Greg about the UART regression on Ux500 and he
picked up the patch to the TTY tree.
* Sent off some clock modernization patches for the ARM
Integrator, iterated with Mike Turquette.
* Had extensive discussions on internal ST-Ericsson matters
and internal code review cutting out a share of my working
hours.
=== Plans ===
* Vacation:
23 june -> 30 june
9 july -> 3 august (preliminary)
(now also reflected in Linaro leaves)
* 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.
=== Issues ===
* N/A
Thanks,
Linus Walleij
Hi all,
And another respin, v5 this time:
- Split out fixes into a separate series;
- Added proper spinlock protection to the pstore/console interface
(the bug I found when was adding ftrace interface);
- And as I'm about to add ftrace support to pstore, to not touch
the same lines of code twice, I reworked 'Factor ramoops_get_dump_prz()
out of ramoops_pstore_read()' patch into 'Factor ramoops_get_next_prz()
out of ramoops_pstore_read()'. This is just a more generic interface
that will work for both console and ftrace przs.
Since the patch changed drastically, it lost Kees' ack, so it needs a
re-ack.
- The same as above happened w/ 'Introduce ramoops_context.max_dump_count'
patch, it turned into 'Give proper names to dump-related variables', it
also needs a re-ack.
- If anyone is willing to try the patches, for convenience they are now
available in the git repository:
git://git.infradead.org/users/cbou/linux-pstore.git
or gitweb:
http://git.infradead.org/users/cbou/linux-pstore.git
In v4:
- Per Kees Cook's comments, the patches no longer remove an automatic
updates feature, but instead make the it configurable; plus disable
it by default (in a separate patch);
- Fixed some bugs noticed by Colin Cross;
- Documented new continuous ramoops-console log behaviour (also
noticed by Colin Cross).
In v3:
- Rebased on top of current staging-next;
- The series are getting bigger. This is partly because we now support
different persistent zone sizes for oops records and console log,
per Colin Cross' request.
And I believe the code is now more manageable for further enhancements
(e.g. if we'd want to add other message types, e.g. tracing);
- Addressed Kees Cook's comments on the unlinking matters;
- Removed automatic updates support. Please see the last patch
description for rationale;
- A new fixup for pstore/inode, just getting rid of a sparse warning.
In v2:
- Updated documentation per Colin Cross' comments;
- Corrected return value in ramoops_pstore_write() (noticed by Kees Cook);
- Fixed large writes handling in pstore_console_write(), i.e. when
log_buf write is larger than pstore bufsize. Also Noticed by Kees Cook.
And a boilerplate for the series:
Currently pstore doesn't support logging kernel messages in run-time,
it only dumps dmesg when kernel oopses/panics. This makes pstore
useless for debugging hangs caused by HW issues or improper use of HW
(e.g. weird device inserted -> driver tried to write reserved bits ->
SoC hanged. In that case we don't get any messages in the pstore.
This series add a new message type for pstore, i.e. PSTORE_TYPE_CONSOLE,
plus make pstore/ram.c handle the new messages.
The old ram_console driver is removed. This might probably cause
some pain for out-of-tree code, as it would need to be adjusted...
but "no pain, no gain"? :-) Though, if there's some serious resistance,
we can probably postpone the last two patches.
Thanks!
---
Documentation/ramoops.txt | 14 ++
drivers/staging/android/Kconfig | 5 -
drivers/staging/android/Makefile | 1 -
drivers/staging/android/ram_console.c | 179 ------------------------
fs/pstore/Kconfig | 7 +
fs/pstore/inode.c | 3 +
fs/pstore/platform.c | 54 +++++++-
fs/pstore/ram.c | 246 ++++++++++++++++++++++++---------
fs/pstore/ram_core.c | 81 +----------
include/linux/pstore.h | 1 +
include/linux/pstore_ram.h | 20 +--
11 files changed, 261 insertions(+), 350 deletions(-)
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
Hi Greg,
In the light of Linus' response, and I said this to Colin already, I'll
just zap a prz at boot time for pstore/console interface, which means
that nowadays there shouldn't be any objections to this bunch of fixes.
These are valid fixes for v3.5, they restore old pstore's behavior
nuances, which I changed accidentaly.
Except for the last patch, which is just a fix I happened to make when
I got bored of the warning. :-) Not a regression fix, though.
Thanks,
---
fs/pstore/inode.c | 2 +-
fs/pstore/ram.c | 3 +++
fs/pstore/ram_core.c | 27 +++++++++++++++++----------
include/linux/pstore_ram.h | 2 ++
4 files changed, 23 insertions(+), 11 deletions(-)
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
Hi all,
Accounting only free pages is very inaccurate for low memory handling,
so we have to be smarter here.
The patch set implements a new attribute, which is blended from various
memory statistics. Vmevent can't expose all the kernel internals to the
userland, as it would make internal Linux MM representation tied to the
ABI. So the ABI itself was made very simple: just number of pages before
we consider that we're low on memory, and the kernel takes care of the
rest.
Thanks,
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
=== Highlights ===
* Volatile Range work was covered by LWN: https://lwn.net/Articles/500382/
* Found a few bugs in my current Volatile range work & fixed them.
* Got some complex feedback on how volatile range purging should connect
into the VM core. Mostly objections to using the shrinkers to trigger
purging. Unfortunately this is a fairly complex issue and my VM-fu isn't
quite at the level it needs to be to have proper conversations on it.
* Spent time looking at the VM code trying to better understand all the
moving parts.
* Synced with Anton for the Android biweekly call.
* Talked w/ MathieuP about Android Upstreaming work items that could use
some extra hands.
* Per LinusW's suggestion, pinged ETM maintainer on the status of the
Android ETM patches.
* Synced w/ Andrey about 12.06 plans and updated and pushed out my
linaro-android-3.5-jstultz-rebase branch
* Got some testing on the new wakelock infrastructure. Looks pretty good!
* Updated the linaro-config branch to 3.5 and added Tixy's changes.
* Discussed config fragment planning and Tixy taking over the
linaro-config tree.
=== Plans ===
* More reading the VM code.
* Take a first shot at reworking the VM core to handle volatile ranges.
=== Issues ===
* VM code makes my brain hurt
== Linus Walleij linusw ==
=== Highlights ===
* Attended Linaro connect, ran a presentation, planned...
* Spend some time funneling back the pinctrl updates and ux500
patches for pin control to ST-Ericssons internal development
track. This will take some more time still.
* Reviewed, acked/nacked discussed etc a hoarde of device tree
patches from Lee during connect. I screwed up Lee's patches by
applying them out-of-order, lesson learned: let Lee send his own
pull request instead of picking and choosing.
* Reviewed and tested a PL08x DMA patch bomb including the
split into virtual channels from Russell King. This is real nice
work by Russell, done as part of his OMAP DMA engine transfer
assignment.
* Reviewed a bunch of incoming pin control patches.
* Sent an update converting Nomadik to use dynamic device
allocation, use the common clock framework, and added support
for PL031 RTC and MMC/SD-card to it.
* Authored a patch to transfer Nomadik STn8815 to use pin
control so we can clean up the implementation.
* Reviewed Alessandro Rubini's patches for the Nomadik/Ux500
i2c controller, tested it, found some bugs and sent solutions
back to Alessandro.
* Had extensive discussions on internal ST-Ericsson matters
cutting out a share of my working hours.
=== Plans ===
* Send pull request for Nomadik changes pt 1.
* Vacation:
23 june -> 30 june
9 july -> 3 august (preliminary)
* Check that Greg picks up the PL011 patch solving a
regression on ux500.
* 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...
like
- the HWMON stuff.
=== Issues ===
* N/A
Thanks,
Linus Walleij
=== Highlights ===
* reviewed some pinctrl-imx fix patches from Devendra Naga
* sent out a pinctrl-imx fix patch
* investigated adding sparse irq and irq domain support for imx
We planned to add irq domain support first and sparse irq depends on it.
* As discussed with Linus and Grant on implementing pinctrl gpio common
binding in Linaro Connect,
i spent some time, but not had too much this week, on trying Grant's
suggestion to improve my patch series,
still not done.
=== Plan ===
* trying Grant's suggestion on improving my pinctrl gpio common binding
patches then discuss it with Linus and Grant
based on the trying result.
* adding irq domain support and sparse irq support for imx
Hi all,
With this support kernel can save functions call chain log into a
persistent ram buffer that can be decoded and dumped after reboot
through pstore filesystem. It can be used to determine what function
was last called before a hang or an unexpected reset (caused by, for
example, a buggy driver that abuses HW).
Here's a "nano howto", to get the idea:
# mount -t debugfs debugfs /sys/kernel/debug/
# cd /sys/kernel/debug/tracing
# echo persistent > current_tracer
# reboot -f
[...]
# mount -t pstore pstore /mnt/
# tail /mnt/ftrace-ramoops
0 ffffffff8101ea64 ffffffff8101bcda native_apic_mem_read <- disconnect_bsp_APIC+0x6a/0xc0
0 ffffffff8101ea44 ffffffff8101bcf6 native_apic_mem_write <- disconnect_bsp_APIC+0x86/0xc0
0 ffffffff81020084 ffffffff8101a4b5 hpet_disable <- native_machine_shutdown+0x75/0x90
0 ffffffff81005f94 ffffffff8101a4bb iommu_shutdown_noop <- native_machine_shutdown+0x7b/0x90
0 ffffffff8101a6a1 ffffffff8101a437 native_machine_emergency_restart <- native_machine_restart+0x37/0x40
0 ffffffff811f9876 ffffffff8101a73a acpi_reboot <- native_machine_emergency_restart+0xaa/0x1e0
0 ffffffff8101a514 ffffffff8101a772 mach_reboot_fixups <- native_machine_emergency_restart+0xe2/0x1e0
0 ffffffff811d9c54 ffffffff8101a7a0 __const_udelay <- native_machine_emergency_restart+0x110/0x1e0
0 ffffffff811d9c34 ffffffff811d9c80 __delay <- __const_udelay+0x30/0x40
0 ffffffff811d9d14 ffffffff811d9c3f delay_tsc <- __delay+0xf/0x20
Mostly the code comes from trace_persistent.c driver found in the
Android git tree, written by Colin Cross <ccross(a)android.com>
(according to sign-off history). I reworked the driver a little bit,
and ported it to pstore subsystem.
The patches depend on a pile of other pstore-related work, so
if anyone is willing to try the patches, they would rather grab
the whole git tree:
git://git.infradead.org/users/cbou/linux-pstore.git
or gitweb:
http://git.infradead.org/users/cbou/linux-pstore.git
Note that so far I've tried to not change the original idea, but if
we consider inclusion, there are some open questions:
1. Should we merge persistent tracer with normal function tracer,
i.e. add some flag that makes function tracer to duplicate the
events into pstore (via a callback to pstore)?
2. If we keep the two separate, should the code live in fs/pstore
or kernel/trace?.. I can see valid points for both approaches.
Thanks,
---
Documentation/ramoops.txt | 24 +++++++++
fs/pstore/Kconfig | 12 +++++
fs/pstore/Makefile | 6 +++
fs/pstore/ftrace.c | 122 ++++++++++++++++++++++++++++++++++++++++++++
fs/pstore/inode.c | 111 ++++++++++++++++++++++++++++++++++++++--
fs/pstore/internal.h | 49 ++++++++++++++++++
fs/pstore/platform.c | 13 ++++-
fs/pstore/ram.c | 54 +++++++++++++++-----
include/linux/pstore.h | 5 ++
include/linux/pstore_ram.h | 1 +
kernel/trace/trace.c | 7 +--
11 files changed, 384 insertions(+), 20 deletions(-)
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
FYI...
---------- Forwarded message ----------
From: linux.conf.au Announcements <lca-announce(a)lists.linux.org.au>
Date: 7 June 2012 07:50
Subject: [lca-announce] linux.conf.au 2013: Call For Proposals (closes July 6)
To: lca-announce(a)lists.linux.org.au
=== linux.conf.au Call For Proposals ===
We are pleased to announce that the Call for Proposals for
linux.conf.au 2013 is now open!
The conference will showcase the best of open source and
community-driven software and hardware. It will be held in Canberra at
the Australian National University from Monday 28 January to Saturday
2 February, 2013, and provides a great opportunity for open source
developers, users, hackers, and makers to share their ideas and
further improve their projects.
=== Important Dates ===
* Call for proposals opens: 1 June 2012
* Call for proposals closes: 6 July 2012
* Email notifications from papers committee: 28 August 2012
* Early Bird registrations open: 1 October 2012
* Conference dates: Monday 28 January to Saturday 2 February 2013
=== Information on Proposals ===
The linux.conf.au 2013 papers committee is looking for a broad range
of proposals, and will consider submissions on anything from
programming and software, to desktop, userspace, community,
government, and education. There is only one rule:
_Your proposal must be related to open source_
This year, the papers committee is going to be focused on deep
technical content, and things we think are going to really matter in
the future -- that might range from freedom and privacy to open source
cloud systems or to energy efficient server farms of the future.
However, the conference is to a large extent what the speakers make it
-- if we receive many excellent submissions on a topic, then it’s sure
to be represented at the conference. Here’s a few ideas to get you
started:
* Kernel and core systems: file systems, embedded devices
* Networking: peer to peer networking, or tuning a TCP/IP stack
* Desktop: office and productivity applications, peripherals, support
* Mobile: kernel, applications, programming, challenges
* Servers: clusters and supercomputers, databases and cloud computing
* Embedded systems: constraints in storage/memory, real-time aspects,
open hardware
* Virtualisation: benefits, challenges, management, kernel and
application support
* Systems administration: maintaining large numbers of machines,
disaster recovery
* Security: application security, network security, cryptography,
malware, viruses
* Programming: programming languages, software engineering practices,
testing, continuous integration/deployment, different development
methodologies
* Modern web technologies: Open source web browsers, HTML5, CSS3,
JavaScript, web apps, accessibility
* Audio and video: video editing, VoIP, WebRTC, video player development
* Free software and free culture: licensing and Free and Open
approaches outside software
* Free software use: home, IT, education, manufacturing, research,
government applications
LCA is known for presentations and tutorials that are strongly
technical in nature, but proposals for presentations on other aspects
of free software and open culture, such as educational and cultural
applications of open source, are welcome.
=== Code of Conduct ===
linux.conf.au welcomes first-time and seasoned speakers from all free
and open communities - people of all ages, genders, nationalities,
ethnicities, backgrounds, religions, abilities, and walks of life. We
respect and encourage diversity at our conference.
By agreeing to present at or attend the conference, you are agreeing
to abide by the terms and conditions
(http://lca2013.linux.org.au/cor/terms_and_conditions). We expect all
speakers and delegates to have read and understood our Code of Conduct
(http://lca2013.linux.org.au/cor/code_of_conduct).
=== Format ===
This year, there are three different ways that you can present your content:
* Presentations
* Tutorials
* Miniconferences
_Presentations_
Presentations are 40 minute slots that are generally presented in
lecture format. These form the bulk of the available conference slots.
_Tutorials_
Tutorials are 90 minutes that are generally presented in a classroom
format. They should be interactive or hands-on in nature. Tutorials
are expected to have a specific learning outcome for attendees.
_Miniconferences_
Miniconfs are day-long sessions on a specific topic. A separate CFP
process will be used to propose and select miniconfs, and will be
announced publicly soon.
For more information on miniconfs, see:
http://lca2013.linux.org.au/miniconf-cfp
=== Speaker Information ===
In recognition of the value that speakers bring to our conference,
once a proposal is accepted a speaker is entitled to:
* Free registration, which holds all of the benefits of a Professional
Delegate Ticket
* Exclusive tickets to the Speakers' Dinner for the speaker and their
immediate family
* One free family ticket to the Partners' Programme
If your proposal includes more than one speaker, these additional
speakers are not entitled to free registration or to any extra
benefits.
linux.conf.au does not and will not pay speakers to present at the conference.
linux.conf.au is able to provide limited financial assistance for some
speakers, for instance, where the cost of flights or accommodation
might prohibit a speaker from attending. Please note, however, that
there is a limited budget for travel assistance and that asking for
assistance could affect your chances of acceptance.
=== Recording and Licensing ===
To increase the number of people that can view your presentation,
linux.conf.au might record your talk and make it publicly available
after the event. When submitting your proposal you will be asked to
release materials relating to your presentation under a Creative
Commons ShareAlike License. Additionally, if you are discussing
software in your presentation, you must ensure the software has an
appropriate open licence.
For more information, see: http://lca2013.linux.org.au/cfp
=== About Linux Australia ===
Linux Australia is the peak body for open source communities around
Australia, and as such represents approximately 3500 Free and Open
Source users and developers. Linux Australia supports the organisation
of this international Free Software conference in a different
Australasian city each year.
For more information about Linux Australia see: http://www.linux.org.au/
=== Papers Enquiries ===
linux.conf.au 2013 Papers Committee
Email: papers-chair at lca2013.linux.org.au
_______________________________________________
lca-announce mailing list
lca-announce(a)lists.linux.org.au
http://lists.linux.org.au/listinfo/lca-announce
Hi all,
There are currently two competing debug facilities to store kernel
messages in a persistent storage: a generic pstore and Google's
persistent_ram. Not so long ago (https://lkml.org/lkml/2012/3/8/252),
it was decided that we should fix this situation.
Recently ramoops has switched to pstore, which basically means that
it became a RAM backend for the pstore framework.
persistent_ram+ram_console and ramoops+pstore have almost the same
features, except:
1. Ramoops doesn't support ECC. Having ECC is useful when a hardware
reset was used to bring the machine back to life (i.e. a watchdog
triggered). In such cases, RAM may be somewhat corrupt, but
usually it is restorable.
2. Pstore doesn't support logging kernel messages in run-time, it only
dumps dmesg when kernel oopses/panics. This makes pstore useless for
debugging hangs caused by HW issues or improper use of HW (e.g.
weird device inserted -> driver tried to write a reserved bits ->
SoC hanged. In that case we don't get any messages in the pstore.
These patches solve the first issue, plus move things to their
proper places. Patches that will fix the second issue are pending.
Thanks,
---
drivers/char/Kconfig | 9 -
drivers/char/Makefile | 1 -
drivers/char/ramoops.c | 362 --------------------
drivers/staging/android/Kconfig | 10 +-
drivers/staging/android/persistent_ram.c | 473 --------------------------
drivers/staging/android/persistent_ram.h | 78 -----
drivers/staging/android/ram_console.c | 2 +-
fs/pstore/Kconfig | 12 +
fs/pstore/Makefile | 1 +
fs/pstore/ram.c | 384 ++++++++++++++++++++++
fs/pstore/ram_core.c | 530 ++++++++++++++++++++++++++++++
include/linux/pstore_ram.h | 99 ++++++
include/linux/ramoops.h | 17 -
13 files changed, 1028 insertions(+), 950 deletions(-)
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com