)]}'
{
  "commit": "05e514b1d4d5bd4209e2c8bbc76ff05c85a235f3",
  "tree": "1768698d814f687fc322e365c672ddd94c14d55b",
  "parents": [
    "21a03d17f2edb1e63f7137d97ba355cc6f19d79f"
  ],
  "author": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Tue Jul 21 16:07:53 2015 +0200"
  },
  "committer": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Wed Jul 22 12:41:40 2015 +0100"
  },
  "message": "AioContext: optimize clearing the EventNotifier\n\nIt is pretty rare for aio_notify to actually set the EventNotifier.  It\ncan happen with worker threads such as thread-pool.c\u0027s, but otherwise it\nshould never be set thanks to the ctx-\u003enotify_me optimization.  The\nprevious patch, unfortunately, added an unconditional call to\nevent_notifier_test_and_clear; now add a userspace fast path that\navoids the call.\n\nNote that it is not possible to do the same with event_notifier_set;\nit would break, as proved (again) by the included formal model.\n\nThis patch survived over 3000 reboots on aarch64 KVM.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nReviewed-by: Fam Zheng \u003cfamz@redhat.com\u003e\nTested-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nMessage-id: 1437487673-23740-7-git-send-email-pbonzini@redhat.com\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5c8b266c72b79e07f881a563da189e0267937766",
      "old_mode": 33188,
      "old_path": "aio-posix.c",
      "new_id": "d4770336c5d5355758c3da207b8be5160f66fc5f",
      "new_mode": 33188,
      "new_path": "aio-posix.c"
    },
    {
      "type": "modify",
      "old_id": "7afc9992d682d335b4fce58182b580f7f678f503",
      "old_mode": 33188,
      "old_path": "aio-win32.c",
      "new_id": "50a68674589aa3c6418604bfb9320e915f624796",
      "new_mode": 33188,
      "new_path": "aio-win32.c"
    },
    {
      "type": "modify",
      "old_id": "d625e8a8035656711f156078bbc7784b4f4754b0",
      "old_mode": 33188,
      "old_path": "async.c",
      "new_id": "9a98a74acb99bbf74c004ab2de0d09ca78eac84c",
      "new_mode": 33188,
      "new_path": "async.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9cef2c955dd0059270c14289d121f6c3cf7d1ce8",
      "new_mode": 33188,
      "new_path": "docs/aio_notify_accept.promela"
    },
    {
      "type": "modify",
      "old_id": "be91e3f7014d55ad585bd80dcdf4694bad992553",
      "old_mode": 33188,
      "old_path": "include/block/aio.h",
      "new_id": "9dd32e0f137c67e5230ff934911016e956f3168f",
      "new_mode": 33188,
      "new_path": "include/block/aio.h"
    }
  ]
}
