Messages in this thread | | | Date | Thu, 7 Jul 2011 16:27:27 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH v3 3/3] char drivers: ramoops debugfs entry |
| |
On Thu, 7 Jul 2011 16:16:43 -0700 Sergiu Iordache <sergiu@google.com> wrote:
> Ramoops currently dumps the log of a panic/oops in a memory area which > is known not to be overwritten on restart (for example 1MB starting at > 15MB). The way it works is by dividing the memory area in records of a > set size (fixed at 4K before my patches, configurable after) and by > dumping a record there for each oops/panic. The problem is that right > now you have to access that memory area through other means, such as > /dev/mem, which is not always possible. > > What my patch did was to add a debugfs entry which returns a valid > record each time (a single dump done by ramoops). The first call > returns the first dump. The first call after the last valid dump > returns an empty buffer. .
Please fully describe this "record" in the v2 patch changelog. We'll want to review it for endianness, 32/64-bit compat issues, maintainability, extensibility, etc.
> After it has returned nothing, the next > calls return records from the start again.
That sounds a bit weird. One would expect it to keep returning zero, requiring userspace to lseek or close/open.
> The validity of a dump is > checked by looking after the header. Any comments on this approach are > welcome. > > Changing the entry from debugfs to sysfs wouldn't be a problem. If > sysfs is a valid solution I'll come with a patch that updates the > documentation as well along with the sysfs entry.
sysfs sounds OK to me. Then again, sysfs is supposed to be one-value-per-file, so using it would be naughty.
I dunno, I'd be inclined to abuse the sysfs rule and hope that nobody notices rather than create a fake char device. But there's certainly plenty of precedent for the fake char driver.
| |