Message ID | 20230329230734.BlueZ.v5.1.I21ac5a143b0e42eef4ff71ef04ef0e53a294932a@changeid (mailing list archive) |
---|---|
State | Accepted |
Commit | 8bd2f29617743a5587ca9679957c2e4bf3b78aa9 |
Headers | show |
Series | [BlueZ,v5,1/2] vhci: Add support to trigger devcoredump and read the dump file | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/CheckPatch | success | CheckPatch PASS |
tedd_an/GitLint | success | Gitlint PASS |
tedd_an/BuildEll | success | Build ELL PASS |
tedd_an/BluezMake | success | Bluez Make PASS |
tedd_an/MakeCheck | success | Bluez Make Check PASS |
tedd_an/MakeDistcheck | success | Make Distcheck PASS |
tedd_an/CheckValgrind | success | Check Valgrind PASS |
tedd_an/CheckSmatch | success | CheckSparse PASS |
tedd_an/bluezmakeextell | success | Make External ELL PASS |
tedd_an/IncrementalBuild | success | Incremental Build PASS |
tedd_an/ScanBuild | success | Scan Build PASS |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=735224 ---Test result--- Test Summary: CheckPatch PASS 1.21 seconds GitLint PASS 0.70 seconds BuildEll PASS 27.03 seconds BluezMake PASS 875.35 seconds MakeCheck PASS 11.64 seconds MakeDistcheck PASS 150.61 seconds CheckValgrind PASS 247.98 seconds CheckSmatch PASS 333.21 seconds bluezmakeextell PASS 98.98 seconds IncrementalBuild PASS 1423.83 seconds ScanBuild PASS 1017.98 seconds --- Regards, Linux Bluetooth
Hello: This series was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Wed, 29 Mar 2023 23:08:02 -0700 you wrote: > Add vhci support to trigger the hci devcoredump by writing to > force_devcoredump debugfs entry and read the generated devcoredump > file. > > --- > > Changes in v5: > - Refactor vhci_read_devcd() > > [...] Here is the summary with links: - [BlueZ,v5,1/2] vhci: Add support to trigger devcoredump and read the dump file https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=8bd2f2961774 - [BlueZ,v5,2/2] mgmt-tester: Add devcoredump tests (no matching commit) You are awesome, thank you!
Hi Manish, On Thu, Mar 30, 2023 at 11:10 AM <patchwork-bot+bluetooth@kernel.org> wrote: > > Hello: > > This series was applied to bluetooth/bluez.git (master) > by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: > > On Wed, 29 Mar 2023 23:08:02 -0700 you wrote: > > Add vhci support to trigger the hci devcoredump by writing to > > force_devcoredump debugfs entry and read the generated devcoredump > > file. > > > > --- > > > > Changes in v5: > > - Refactor vhci_read_devcd() > > > > [...] > > Here is the summary with links: > - [BlueZ,v5,1/2] vhci: Add support to trigger devcoredump and read the dump file > https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=8bd2f2961774 > - [BlueZ,v5,2/2] mgmt-tester: Add devcoredump tests > (no matching commit) Note that I did a small change to convert from tester_test_failed to tester_test_abort that is why the no matching commit is shown above. > You are awesome, thank you! > -- > Deet-doot-dot, I am a bot. > https://korg.docs.kernel.org/patchwork/pwbot.html > >
diff --git a/emulator/vhci.c b/emulator/vhci.c index a12b11e0f..ecf1db3c7 100644 --- a/emulator/vhci.c +++ b/emulator/vhci.c @@ -22,6 +22,7 @@ #include <sys/uio.h> #include <fcntl.h> #include <unistd.h> +#include <dirent.h> #include "lib/bluetooth.h" #include "lib/hci.h" @@ -32,6 +33,7 @@ #include "vhci.h" #define DEBUGFS_PATH "/sys/kernel/debug/bluetooth" +#define DEVCORE_PATH "/sys/class/devcoredump" struct vhci { enum btdev_type type; @@ -184,7 +186,7 @@ struct btdev *vhci_get_btdev(struct vhci *vhci) return vhci->btdev; } -static int vhci_debugfs_write(struct vhci *vhci, char *option, void *data, +static int vhci_debugfs_write(struct vhci *vhci, char *option, const void *data, size_t len) { char path[64]; @@ -267,3 +269,60 @@ int vhci_set_force_static_address(struct vhci *vhci, bool enable) return vhci_debugfs_write(vhci, "force_static_address", &val, sizeof(val)); } + +int vhci_force_devcd(struct vhci *vhci, const void *data, size_t len) +{ + return vhci_debugfs_write(vhci, "force_devcoredump", data, len); +} + +int vhci_read_devcd(struct vhci *vhci, void *buf, size_t size) +{ + DIR *dir; + struct dirent *entry; + char filename[PATH_MAX]; + int fd; + int ret; + + dir = opendir(DEVCORE_PATH); + if (dir == NULL) + return -errno; + + while ((entry = readdir(dir)) != NULL) { + if (strstr(entry->d_name, "devcd")) + break; + } + + if (entry == NULL) { + ret = -ENOENT; + goto close_dir; + } + + sprintf(filename, DEVCORE_PATH "/%s/data", entry->d_name); + fd = open(filename, O_RDWR); + if (fd < 0) { + ret = -errno; + goto close_dir; + } + + ret = read(fd, buf, size); + if (ret < 0) { + ret = -errno; + goto close_file; + } + + /* Once the devcoredump is read, write anything to it to mark it for + * cleanup. + */ + if (write(fd, "0", 1) < 0) { + ret = -errno; + goto close_file; + } + +close_file: + close(fd); + +close_dir: + closedir(dir); + + return ret; +} diff --git a/emulator/vhci.h b/emulator/vhci.h index 6da56cb58..68eae4c4a 100644 --- a/emulator/vhci.h +++ b/emulator/vhci.h @@ -29,3 +29,5 @@ int vhci_set_msft_opcode(struct vhci *vhci, uint16_t opcode); int vhci_set_aosp_capable(struct vhci *vhci, bool enable); int vhci_set_emu_opcode(struct vhci *vhci, uint16_t opcode); int vhci_set_force_static_address(struct vhci *vhci, bool enable); +int vhci_force_devcd(struct vhci *vhci, const void *data, size_t len); +int vhci_read_devcd(struct vhci *vhci, void *buf, size_t size);