Re: How to let devcoredump know data has been read?
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?
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?
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?
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?
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