OSDN Git Service

GD-HCI: Flush snoop log to kernel buffer on every write
authorJack He <siyuanh@google.com>
Thu, 20 Aug 2020 08:29:24 +0000 (01:29 -0700)
committerJack He <siyuanh@google.com>
Thu, 20 Aug 2020 08:40:13 +0000 (01:40 -0700)
commitf6fc4af1c81d75f886e99da087b3c43751150cd4
tree04151b3fb6fab8a52bce698390ddbff6ba2a8c79
parent789939514f0ced00fda528f307eda382e63e517b
GD-HCI: Flush snoop log to kernel buffer on every write

* std::ofstream::flush() pushes user data into kernel memory. The data
  will be written even if this process crashes. However, data will be lost
  if there is a kernel panic, which is out of scope of BT snoop log.
* std::ofstream::write() followed by std::ofstream::flush() has similar
  effect as UNIX write(fd, data, len) as write() syscall dumps data into
  kernel memory directly
* Before this change, btsnoop log data might be partially stored in
  memory when bluetooth stack crashes, causing broken log entries
  or missing packets

Bug: 164973960
Test: make, flash phone, and test pairing
Tag: #gd-refactor
Change-Id: I611e0b9480511b569dadbb023775b0db8159f39d
gd/hal/snoop_logger.cc
gd/os/android/parameter_provider.cc
gd/os/host/parameter_provider.cc
gd/os/parameter_provider.h