[v2,00/12] udev-cache related changes

Submitted by Richard Tollerton on Aug. 22, 2014, 9:30 p.m. | Patch ID: 78835


Message ID cover.1408742574.git.rich.tollerton@ni.com
State New
Headers show


git://github.com/rtollert/openembedded-core dev/rtollert/udev-cache-7

Commit Message

Richard Tollerton Aug. 22, 2014, 9:30 p.m.
This is v2 of the changes submitted by Ben Shelton on August 4. I've reworked the
patches quite a bit, larger changes include:

- All non-udev-cache-related patches have been omitted. I'll submit those
- Use `find` to build `tar` filelist. This eliminates the need for GNU- and
  busybox-specific tar options.
- No new settings have been added to udev-cache.default in order to preserve
  compatibility with older overrides of udev-cache.default. Note, this means a
  lot of new settings are duplicated between initscripts.
- System config is now generated immediately before the tarball is generated,
  and is manipulated at the file level instead of the shell variable level.
- Internal/corporate commit message fields stripped.
- Spurious whitespace changes should all be fixed.

There is one requested fix I'm pushing back on: Copying both $CMP_FILE_LIST and
/dev to tmpfs in a single operation to minimize race conditions. For a variety
of reasons, I abandoned trying to make this work in a single command. Instead
it's done in two: grabbing the system configuration (i.e reading /proc files and
udev rules) is done first, then /dev is archived as an uncompressed tarball.
Notably, using tar instead of cp means that I can use `find -xdev` and `find
-type` to eliminate a lot of other complexity. I think this approach will wind
up being faster than the straight-up copy approach, although I have not made any
attempt to confirm that.

The following changes since commit 47d1fc9f5c38f3d092937c47bd4c2f45adaa7fe6:

  qemu: fix Darwin cross-compilation (2014-08-18 20:43:24 +0100)

are available in the git repository at:

  git://github.com/rtollert/openembedded-core dev/rtollert/udev-cache-7

Richard Tollerton (12):
  udev-cache: Update cache tarball atomically
  udev-cache: Compress the cache
  udev-cache: choose a more descriptive cache filename
  busybox: enable `tar -m`
  udev-cache: strip timestamps on extract
  udev-cache: omit sockets and filesystems mounted under /dev
  udev-cache: Don't ignore error messages from cache extract
  udev-cache: parametrize sysconf file paths
  udev-cache: get system config immediately before cache
  udev-cache: invalidate on rules.d changes
  udev-cache: Update cache asynchronously
  udev-cache: refactor; improve verbosity and error handling

 meta/recipes-core/busybox/busybox/defconfig    |  2 +-
 meta/recipes-core/udev/udev/init               | 53 ++++++++++++--------------
 meta/recipes-core/udev/udev/udev-cache         | 42 ++++++++++++++++++--
 meta/recipes-core/udev/udev/udev-cache.default |  2 +-
 4 files changed, 64 insertions(+), 35 deletions(-)