Re: How to let devcoredump know data has been read?

2018-06-06 Thread Arend van Spriel

On 6/6/2018 12:53 AM, Brian Norris wrote:

Unfortunately, devcoredump is a bit lacking in documentation. Arend was
writing a bit for the new trigger mechanism at least.


I did indeed write ABI doc for user-space trigger mechanism and you 
brought up the need to have ABI doc for devcoredump. I agree it would be 
useful and it is dangling at the bottom of my todo list so I did not get 
to it (yet). Hopefully I can spend a moment on it.


Regards,
Arend



Re: How to let devcoredump know data has been read?

2018-06-06 Thread Arend van Spriel

On 6/6/2018 7:04 PM, Ben Greear wrote:

On 06/05/2018 03:53 PM, Brian Norris wrote:

Hi,

On Tue, Jun 05, 2018 at 03:27:28PM -0700, Ben Greear wrote:

I have been testing ath10k on 4.16, which uses the devcoredump API
to notify about dumps.

I am able to see the binary crash dump at
/sys/class/devcoredump/devcd2/data,
for instance, but if I do another crash quickly, I get no new uevent
sent
and no new crash.

I see there is a 5 minute timer on the coredump data, but it also
seems to indicate
that if I read the crash, the data should be cleared and ready to be
recreated again?  How do you notify the system that the crash data has
been read?

I tried 'cat' on the data file, but that did not seem to clear anything.


Try *writing* to it?

https://elixir.bootlin.com/linux/v4.16/source/drivers/base/devcoredump.c#L91


https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=833c95456a70826d1384883b73fd23aff24d366f



The dumped data will be readable in sysfs in the virtual device's
data file under /sys/class/devcoredump/devcd*/. Writing to it will
free the data and remove the device, as does a 5-minute timeout.


e.g.:

# ls -l /sys/class/devcoredump/devcd1
lrwxrwxrwx. 1 root root 0 Jun  5 15:49 /sys/class/devcoredump/devcd1
-> ../../devices/virtual/devcoredump/devcd1
# echo 1 > /sys/class/devcoredump/devcd1/data
# ls -l /sys/class/devcoredump/devcd1
ls: cannot access '/sys/class/devcoredump/devcd1': No such file or
directory


Thanks to all who responded.  That indeed works just fine.

Just in case you know a quick answer:  I opened a netlink socket to listen
to uevents so I would know when FW crashed.  It receives the kernel
messages,
but also receives 'libudev' events which seem to have some binary header in
them (which I could not google any info about how to decode it).  Is there
an easy way to tell the socket to not send the libudev events?


Hi Ben,

When I was playing with..eh..implementing devcoredump functionality in 
brcmfmac, I created a small app for it based on [1]. I should have put 
it under version control so I can not make it easier for you.


Regards,
Arend

[1] http://www.signal11.us/oss/udev/


Re: How to let devcoredump know data has been read?

2018-06-06 Thread Ben Greear

On 06/05/2018 03:53 PM, Brian Norris wrote:

Hi,

On Tue, Jun 05, 2018 at 03:27:28PM -0700, Ben Greear wrote:

I have been testing ath10k on 4.16, which uses the devcoredump API
to notify about dumps.

I am able to see the binary crash dump at /sys/class/devcoredump/devcd2/data,
for instance, but if I do another crash quickly, I get no new uevent sent
and no new crash.

I see there is a 5 minute timer on the coredump data, but it also seems to 
indicate
that if I read the crash, the data should be cleared and ready to be
recreated again?  How do you notify the system that the crash data has
been read?

I tried 'cat' on the data file, but that did not seem to clear anything.


Try *writing* to it?

https://elixir.bootlin.com/linux/v4.16/source/drivers/base/devcoredump.c#L91

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=833c95456a70826d1384883b73fd23aff24d366f


The dumped data will be readable in sysfs in the virtual device's
data file under /sys/class/devcoredump/devcd*/. Writing to it will
free the data and remove the device, as does a 5-minute timeout.


e.g.:

# ls -l /sys/class/devcoredump/devcd1
lrwxrwxrwx. 1 root root 0 Jun  5 15:49 /sys/class/devcoredump/devcd1 -> 
../../devices/virtual/devcoredump/devcd1
# echo 1 > /sys/class/devcoredump/devcd1/data
# ls -l /sys/class/devcoredump/devcd1
ls: cannot access '/sys/class/devcoredump/devcd1': No such file or directory


Thanks to all who responded.  That indeed works just fine.

Just in case you know a quick answer:  I opened a netlink socket to listen
to uevents so I would know when FW crashed.  It receives the kernel messages,
but also receives 'libudev' events which seem to have some binary header in
them (which I could not google any info about how to decode it).  Is there
an easy way to tell the socket to not send the libudev events?

Thanks,
Ben

--
Ben Greear 
Candela Technologies Inc  http://www.candelatech.com



Re: How to let devcoredump know data has been read?

2018-06-05 Thread Brian Norris
Hi,

On Tue, Jun 05, 2018 at 03:27:28PM -0700, Ben Greear wrote:
> I have been testing ath10k on 4.16, which uses the devcoredump API
> to notify about dumps.
> 
> I am able to see the binary crash dump at /sys/class/devcoredump/devcd2/data,
> for instance, but if I do another crash quickly, I get no new uevent sent
> and no new crash.
> 
> I see there is a 5 minute timer on the coredump data, but it also seems to 
> indicate
> that if I read the crash, the data should be cleared and ready to be
> recreated again?  How do you notify the system that the crash data has
> been read?
> 
> I tried 'cat' on the data file, but that did not seem to clear anything.

Try *writing* to it?

https://elixir.bootlin.com/linux/v4.16/source/drivers/base/devcoredump.c#L91

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=833c95456a70826d1384883b73fd23aff24d366f


The dumped data will be readable in sysfs in the virtual device's
data file under /sys/class/devcoredump/devcd*/. Writing to it will
free the data and remove the device, as does a 5-minute timeout.


e.g.:

# ls -l /sys/class/devcoredump/devcd1
lrwxrwxrwx. 1 root root 0 Jun  5 15:49 /sys/class/devcoredump/devcd1 -> 
../../devices/virtual/devcoredump/devcd1
# echo 1 > /sys/class/devcoredump/devcd1/data
# ls -l /sys/class/devcoredump/devcd1
ls: cannot access '/sys/class/devcoredump/devcd1': No such file or directory

Unfortunately, devcoredump is a bit lacking in documentation. Arend was
writing a bit for the new trigger mechanism at least.

Brian


How to let devcoredump know data has been read?

2018-06-05 Thread Ben Greear

I have been testing ath10k on 4.16, which uses the devcoredump API
to notify about dumps.

I am able to see the binary crash dump at /sys/class/devcoredump/devcd2/data,
for instance, but if I do another crash quickly, I get no new uevent sent
and no new crash.

I see there is a 5 minute timer on the coredump data, but it also seems to 
indicate
that if I read the crash, the data should be cleared and ready to be
recreated again?  How do you notify the system that the crash data has
been read?

I tried 'cat' on the data file, but that did not seem to clear anything.

Thanks,
Ben

--
Ben Greear 
Candela Technologies Inc  http://www.candelatech.com