{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":143366608,"defaultBranch":"master","name":"kvm-guest-drivers-windows","ownerLogin":"JonKohler","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2018-08-03T02:19:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/21041006?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1686593343.903092","currentOid":""},"activityList":{"items":[{"before":"8965badba301ceabe9fc29863e07858f3a7f7a06","after":"715efbb1726fa813f44fd99d933591cc3b5c8192","ref":"refs/heads/jk-process-queue","pushedAt":"2023-06-12T18:32:21.804Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"wip: ProcessQueue for outstanding completions on queue full","shortMessageHtmlLink":"wip: ProcessQueue for outstanding completions on queue full"}},{"before":null,"after":"8965badba301ceabe9fc29863e07858f3a7f7a06","ref":"refs/heads/jk-process-queue","pushedAt":"2023-06-12T18:09:03.903Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"wip: ProcessQueue for outstanding completions on queue full","shortMessageHtmlLink":"wip: ProcessQueue for outstanding completions on queue full"}},{"before":"d720470cdff4d15e25815048e0af1a8ab975016b","after":"e93f6a3cb88c86baa65bf59176957221cf62c73e","ref":"refs/heads/qfull-kicks","pushedAt":"2023-06-07T13:44:24.111Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"vioscsi: always kick VQ when buffers exhausted\n\nWhen VIRTIO_RING_F_EVENT_IDX is not enabled, we should kick the VQ\neven if VIRTQ_USED_F_NO_NOTIFY is set when all buffers are exhausted.\n\nThis will ensure that we always kick when we're full, not only *after*\nwe are full. Do this by keying off of vq->num_unused <=1 in\nvirtqueue_kick_prepare_split.\n\nOn the vioscsi side, after successfully adding a buffer to VQ, query\nvirtqueue_kick_prepare under lock to ensure that we can get an accurate\nread of vq->num_unused.\n\nnit: cleanup virtqueue_kick_prepare_split to only deal with\nevent_suppression_related variables if that is enabled.\n\nSigned-off-by: Jon Kohler ","shortMessageHtmlLink":"vioscsi: always kick VQ when buffers exhausted"}},{"before":"31d0a862127a70ab58e1f210ea9b835e86c99255","after":"d720470cdff4d15e25815048e0af1a8ab975016b","ref":"refs/heads/qfull-kicks","pushedAt":"2023-06-07T13:27:58.194Z","pushType":"push","commitsCount":1,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"vioscsi: always kick VQ when buffers exhausted\n\nWhen VIRTIO_RING_F_EVENT_IDX is not enabled, we should kick the VQ\neven if VIRTQ_USED_F_NO_NOTIFY is set when all buffers are exhausted.\n\nThis will ensure that we always kick when we're full, not only *after*\nwe are full. Do this by keying off of vq->num_unused <=1 in\nvirtqueue_kick_prepare_split.\n\nOn the vioscsi side, after successfully adding a buffer to VQ, query\nvirtqueue_kick_prepare under lock to ensure that we can get an accurate\nread of vq->num_unused.\n\nnit: cleanup virtqueue_kick_prepare_split to only deal with\nevent_suppression_related variables if that is enabled.\n\nSigned-off-by: Jon Kohler ","shortMessageHtmlLink":"vioscsi: always kick VQ when buffers exhausted"}},{"before":null,"after":"31d0a862127a70ab58e1f210ea9b835e86c99255","ref":"refs/heads/qfull-kicks","pushedAt":"2023-06-07T13:07:25.078Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"vioscsi: set SCSISTAT_QUEUE_FULL if a buffer cannot be added to a VQ\n\nIt was noticed that if a VQ gets exhausted, completing a request with\nSRB_STATUS_BUSY only will result in stalling of a whole unit and it\nmay lead to the performance degradation during IO intensive workloads.\nThe issue is mostly seen when there is a high number of outstanding\n IOs, e.g. ~512 or more.\n\nWhen the miniport reports device-busy by setting SCSISTAT_QUEUE_FULL\nin ScsiStatus of a SRB, StorPort pauses the logical unit queue and\nwaits until a certain amount I/O requests are completed by the miniport\nbefore sending any further requests. The amount of I/O requests StorPort\nwaits on is calculated using QueueFullWaitIoPercentage registry value\nrelative to the count of I/O requests currently sent to the miniport.\n\nSigned-off-by: Sergey Bykov ","shortMessageHtmlLink":"vioscsi: set SCSISTAT_QUEUE_FULL if a buffer cannot be added to a VQ"}},{"before":"ac6f0ab9e41bfd7c6fee8123984da4f4cd6f04e9","after":"31d0a862127a70ab58e1f210ea9b835e86c99255","ref":"refs/heads/master","pushedAt":"2023-06-07T13:04:40.428Z","pushType":"push","commitsCount":118,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"vioscsi: set SCSISTAT_QUEUE_FULL if a buffer cannot be added to a VQ\n\nIt was noticed that if a VQ gets exhausted, completing a request with\nSRB_STATUS_BUSY only will result in stalling of a whole unit and it\nmay lead to the performance degradation during IO intensive workloads.\nThe issue is mostly seen when there is a high number of outstanding\n IOs, e.g. ~512 or more.\n\nWhen the miniport reports device-busy by setting SCSISTAT_QUEUE_FULL\nin ScsiStatus of a SRB, StorPort pauses the logical unit queue and\nwaits until a certain amount I/O requests are completed by the miniport\nbefore sending any further requests. The amount of I/O requests StorPort\nwaits on is calculated using QueueFullWaitIoPercentage registry value\nrelative to the count of I/O requests currently sent to the miniport.\n\nSigned-off-by: Sergey Bykov ","shortMessageHtmlLink":"vioscsi: set SCSISTAT_QUEUE_FULL if a buffer cannot be added to a VQ"}},{"before":"ac6f0ab9e41bfd7c6fee8123984da4f4cd6f04e9","after":"31d0a862127a70ab58e1f210ea9b835e86c99255","ref":"refs/heads/master","pushedAt":"2023-06-07T13:04:40.382Z","pushType":"push","commitsCount":118,"pusher":{"login":"JonKohler","name":"Jon Kohler","path":"/JonKohler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21041006?s=80&v=4"},"commit":{"message":"vioscsi: set SCSISTAT_QUEUE_FULL if a buffer cannot be added to a VQ\n\nIt was noticed that if a VQ gets exhausted, completing a request with\nSRB_STATUS_BUSY only will result in stalling of a whole unit and it\nmay lead to the performance degradation during IO intensive workloads.\nThe issue is mostly seen when there is a high number of outstanding\n IOs, e.g. ~512 or more.\n\nWhen the miniport reports device-busy by setting SCSISTAT_QUEUE_FULL\nin ScsiStatus of a SRB, StorPort pauses the logical unit queue and\nwaits until a certain amount I/O requests are completed by the miniport\nbefore sending any further requests. The amount of I/O requests StorPort\nwaits on is calculated using QueueFullWaitIoPercentage registry value\nrelative to the count of I/O requests currently sent to the miniport.\n\nSigned-off-by: Sergey Bykov ","shortMessageHtmlLink":"vioscsi: set SCSISTAT_QUEUE_FULL if a buffer cannot be added to a VQ"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADP94dzwA","startCursor":null,"endCursor":null}},"title":"Activity ยท JonKohler/kvm-guest-drivers-windows"}