)]}'
{
  "commit": "4995f8ef9d3aac72745e12419d7fbaa8d01b1d81",
  "tree": "32b86d8b5f5ccba8f367d3e911ba3d1e19d73729",
  "parents": [
    "ce21c7bcd796fc4f45d48781b7e85f493cc55ee5"
  ],
  "author": {
    "name": "Kay Sievers",
    "email": "kay.sievers@vrfy.org",
    "time": "Mon Mar 09 14:18:52 2009 +0100"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Tue Mar 24 16:38:26 2009 -0700"
  },
  "message": "vcs: hook sysfs devices into object lifetime instead of \"binding\"\n\nDuring bootup performance tracing I noticed many occurrences of\nvca* device creation and removal, leading to the usual userspace\nuevent processing, which are, in this case, rather pointless.\n\nA simple test showing the kernel timing (not including all the\nwork userspace has to do), gives us these numbers:\n  $ time for i in `seq 1000`; do echo a \u003e /dev/tty2; done\n  real    0m1.142s\n  user    0m0.015s\n  sys     0m0.540s\n\nIf we move the hook for the vcs* driver core devices from the\ntty \"binding\" to the vc allocation/deallocation, which is what\nthe vcs* devices represent, we get the following numbers:\n  $ time for i in `seq 1000`; do echo a \u003e /dev/tty2; done\n  real    0m0.152s\n  user    0m0.030s\n  sys     0m0.072s\n\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4f3b3f95fc42b4bb7bcf03a561aa5f69c48a393d",
      "old_mode": 33188,
      "old_path": "drivers/char/vc_screen.c",
      "new_id": "d94d25c12aa87ccacfe12d72ea5e72d4f3f4f93c",
      "new_mode": 33188,
      "new_path": "drivers/char/vc_screen.c"
    },
    {
      "type": "modify",
      "old_id": "7900bd63b36da74529eb76bf2923c165cf8d8a1f",
      "old_mode": 33188,
      "old_path": "drivers/char/vt.c",
      "new_id": "2c1d133819b5e575e69928458bc292226eab8b59",
      "new_mode": 33188,
      "new_path": "drivers/char/vt.c"
    },
    {
      "type": "modify",
      "old_id": "a67a90cf826882bb6ad47c119de04abac49cd91d",
      "old_mode": 33188,
      "old_path": "include/linux/console.h",
      "new_id": "dcca5339ceb3c65711d9fce57d27bec70153029f",
      "new_mode": 33188,
      "new_path": "include/linux/console.h"
    }
  ]
}
