)]}'
{
  "commit": "4f870ab8529b65417b5898ee066b1e68c9b76aba",
  "tree": "8f9e059401306abda183dfc60e8482b1e5bf2fd0",
  "parents": [
    "d479eceac91d8fa131723872d2c2cb6d95b57c6c"
  ],
  "author": {
    "name": "Sooraj Puthoor",
    "email": "Sooraj.Puthoor@amd.com",
    "time": "Sun Feb 11 03:05:00 2018 -0500"
  },
  "committer": {
    "name": "gauravjain14",
    "email": "gjain6@wisc.edu",
    "time": "Thu Dec 05 17:20:23 2019 -0600"
  },
  "message": "hsa: enable interruptible hsa signal support\n\nEvent creation and management support from emulated drivers is required to\nsupport interruptible signals in HSA and this support was not available. This\nchangeset adds the event creation and management support in the emulated\ndriver.  With this patch, each interruptible signal created by the HSA runtime\nis associated with a signal event. The HSA runtime can then put a thread\nwaiting on a signal condition to sleep asking the driver to monitor the event\nassociated with that signal. If the signal is modified by the GPU, the\ndispatcher notifies the driver about signal value change.  If the modifier is a\nCPU thread, the thread will have to make HSA API calls to modify the signal and\nthese API calls will notify the driver about signal value change. Once the\ndriver is notified about a change in the signal value, the driver checks to see\nif any thread is sleeping on that signal and wake up the sleeping thread\nassociated with that event. The driver has also implemented the time_out wakeup\nthat can wake up the thread after a certain time period has expired. This\nis also true for barrier packets. This changeset also fixes a bug in the mmap\nsyscall.\n\nEach signal has an event address in a kernel managed and allocated  event page\nthat can be used as a mailbox pointer to notify an event. However, this feature\nused by non-CPU agents to communicate with the driver is not implemented by\nthis changeset because the non-CPU HSA agents in our model can directly\ncommunicate with driver in our implementation. Having said that, adding that\nfeature should be trivial because the event address and event pages are\ncorrectly setup by this changeset and just adding the event page\u0027s virtual\naddress to our PIO doorbell interface in the page tables and registering that\npio address to the driver should be sufficient. Managing mailbox pointer for an\nevent is based on event ID and using this event ID as an index into event page,\nthis changeset already provides a unique mailbox pointer for each event.\n\nChange-Id: Ic62794076ddd47526b1f952fdb4c1bad632bdd2e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2527d976c4e6fd33c69bc946261e55acc84b9944",
      "old_mode": 33188,
      "old_path": "configs/example/apu_se.py",
      "new_id": "3b085cdef3847d9e82a1c82e20c12d8da49a8f46",
      "new_mode": 33188,
      "new_path": "configs/example/apu_se.py"
    },
    {
      "type": "modify",
      "old_id": "c396e435be4c38c670e92b84c8ca83037bf95d7c",
      "old_mode": 33188,
      "old_path": "src/dev/hsa/hsa_device.hh",
      "new_id": "7562e8558e6b4bb14adbf9746c8919fc528457e2",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hsa_device.hh"
    },
    {
      "type": "modify",
      "old_id": "5f301591708eb067a73b908740ab6ef9d57480b2",
      "old_mode": 33188,
      "old_path": "src/dev/hsa/hsa_driver.cc",
      "new_id": "ce8605504a40f92e6a6308046d67ffcc2ba012d9",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hsa_driver.cc"
    },
    {
      "type": "modify",
      "old_id": "b3c7ee2af1327d9c6a77d4541abe6f2e2b457356",
      "old_mode": 33188,
      "old_path": "src/dev/hsa/hsa_driver.hh",
      "new_id": "f9ad7d596cee3c783c62fd7be864559520c51460",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hsa_driver.hh"
    },
    {
      "type": "modify",
      "old_id": "1311fe05880fbccc5c3aa78a0718e399d5daa9d2",
      "old_mode": 33188,
      "old_path": "src/dev/hsa/hsa_packet_processor.cc",
      "new_id": "590dc3c260ea296eaa1868b3b45129225c90f8b1",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hsa_packet_processor.cc"
    },
    {
      "type": "modify",
      "old_id": "b3057bcc6c62b1cecc2f0fa499d1321670416dbe",
      "old_mode": 33188,
      "old_path": "src/dev/hsa/hsa_packet_processor.hh",
      "new_id": "a5df81229a6c7e702f49352351df969553ea5687",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hsa_packet_processor.hh"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "943ea333bb6184c1023f740381dd93bcbe30af18",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hsa_signal.hh"
    },
    {
      "type": "modify",
      "old_id": "6b371551bd9d330e398cb374808044ceedc0b0c5",
      "old_mode": 33188,
      "old_path": "src/dev/hsa/hw_scheduler.cc",
      "new_id": "365c2023502b6ffd2df4ad5148e276a8c6633a2c",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/hw_scheduler.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cd107fb6819b30c2707f6fae0e6ce8386cd12edc",
      "new_mode": 33188,
      "new_path": "src/dev/hsa/kfd_event_defines.h"
    },
    {
      "type": "modify",
      "old_id": "0e1035c8220f51dcc54cfab56a330dfacaff3497",
      "old_mode": 33188,
      "old_path": "src/gpu-compute/dispatcher.cc",
      "new_id": "ef1956293090a9e3099811da3e0a0677288db246",
      "new_mode": 33188,
      "new_path": "src/gpu-compute/dispatcher.cc"
    },
    {
      "type": "modify",
      "old_id": "1d283d5c2a41fbece222cbb16de1a3816b2c8142",
      "old_mode": 33188,
      "old_path": "src/gpu-compute/gpu_command_processor.cc",
      "new_id": "59e2f5d5ca40e237c079e2c92ddae5f9a12546b4",
      "new_mode": 33188,
      "new_path": "src/gpu-compute/gpu_command_processor.cc"
    },
    {
      "type": "modify",
      "old_id": "7253dd4216b80b6f886c99f92ba527914410abca",
      "old_mode": 33188,
      "old_path": "src/gpu-compute/gpu_command_processor.hh",
      "new_id": "8ad47c7c2b988b4facb03384706742b36701a4f5",
      "new_mode": 33188,
      "new_path": "src/gpu-compute/gpu_command_processor.hh"
    },
    {
      "type": "modify",
      "old_id": "40420bae509d2f94423dd21a1e214efd24524818",
      "old_mode": 33188,
      "old_path": "src/gpu-compute/gpu_compute_driver.cc",
      "new_id": "334bddd13db9f6087c16f27235e208ddfae2b128",
      "new_mode": 33188,
      "new_path": "src/gpu-compute/gpu_compute_driver.cc"
    },
    {
      "type": "modify",
      "old_id": "5e56d4227ff1fa645810f844f8c8d236c1053fc9",
      "old_mode": 33188,
      "old_path": "src/gpu-compute/gpu_compute_driver.hh",
      "new_id": "9cca0e8a63e8f8282cd013d673a5fa358cdc2ab0",
      "new_mode": 33188,
      "new_path": "src/gpu-compute/gpu_compute_driver.hh"
    },
    {
      "type": "modify",
      "old_id": "fe13d90775093d464f553132b1472e5742ef1deb",
      "old_mode": 33188,
      "old_path": "src/sim/emul_driver.hh",
      "new_id": "f1840071700c78a4cb596e3249bb32235b943aa7",
      "new_mode": 33188,
      "new_path": "src/sim/emul_driver.hh"
    },
    {
      "type": "modify",
      "old_id": "19469d15c7742f1f9735bd81d865f90197dd1093",
      "old_mode": 33188,
      "old_path": "src/sim/syscall_emul.hh",
      "new_id": "c34e3a459310393cdeadba48e7fc89abf08261f7",
      "new_mode": 33188,
      "new_path": "src/sim/syscall_emul.hh"
    }
  ]
}
