Files
kernel_arpi/include/uapi/linux
Bodo Stroesser bc2d214af5 scsi: target: tcmu: Implement tmr_notify callback
This patch implements the tmr_notify callback for tcmu.  When the callback
is called, tcmu checks the list of aborted commands it received as
parameter:

 - aborted commands in the qfull_queue are removed from the queue and
   target_complete_command is called

 - from the cmd_ids of aborted commands currently uncompleted in cmd ring
   it creates a list of aborted cmd_ids.

Finally a TMR notification is written to cmd ring containing TMR type and
cmd_id list. If there is no space in ring, the TMR notification is queued
on a TMR specific queue.

The TMR specific queue 'tmr_queue' can be seen as a extension of the cmd
ring. At the end of each iexecution of tcmu_complete_commands() we check
whether tmr_queue contains TMRs and try to move them onto the ring. If
tmr_queue is not empty after that, we don't call run_qfull_queue() because
commands must not overtake TMRs.

This way we guarantee that cmd_ids in TMR notification received by
userspace either match an active, not yet completed command or are no
longer valid due to userspace having complete some cmd_ids meanwhile.

New commands that were assigned to an aborted cmd_id will always appear on
the cmd ring _after_ the TMR.

Link: https://lore.kernel.org/r/20200726153510.13077-8-bstroesser@ts.fujitsu.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Bodo Stroesser <bstroesser@ts.fujitsu.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2020-07-28 22:25:30 -04:00
..
2020-05-28 11:22:14 +02:00
2019-12-18 18:07:31 +01:00
2019-10-09 22:31:14 -04:00
2020-06-01 11:49:23 -07:00
2020-04-27 16:29:41 +05:30
2020-05-14 16:44:25 +02:00
2019-12-11 15:31:52 +01:00
2020-04-20 12:43:24 -07:00
2020-05-17 14:10:07 -06:00
2020-05-01 10:00:19 -04:00
2020-05-21 08:20:35 -06:00
2020-03-29 22:30:57 -07:00
2020-03-29 22:14:49 -07:00
2020-01-18 09:19:18 -05:00
2019-10-02 20:32:27 -06:00
2020-05-21 17:04:07 -07:00
2020-03-29 22:30:57 -07:00
2020-01-26 15:28:47 +01:00
2019-12-18 18:07:31 +01:00
2019-12-09 09:59:07 +01:00
2020-03-29 23:29:08 +02:00
2020-04-20 07:26:42 +02:00