Re: calling context of scsi_end_request() always hard IRQ or sometimes different?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2022-05-06 at 18:57 +0200, Jason A. Donenfeld wrote:
> Hey James, Martin,
> 
> I'm in the process of fixing a few issues with the RNG and one thing
> that surprised me is that scsi_end_request() appears to be called
> from hard IRQ context rather than some worker or soft IRQ as I
> assumed it would be. That's fine, and I can deal with it, but what I
> haven't yet been able to figure out is whether it's _always_ called
> from hard IRQ, or whether it's sometimes from hard IRQ and sometimes
> not, and so I should handle both cases in the thing I'm working on?
> 
> And if the answer turns out to be, "I don't know; that's really
> complicated and..." just say so, and I'll just try to work out the
> whole function graph.

Are you sure you mean scsi_end_request()?  It's static to scsi_lib.c so
its call graph is tiny  it basically goes from the blk-mq complete
function (softirq) through scsi_complete->scsi_finish_command-
>scsi_io_completion->scsi_end_request

However, I didn't think it was ever called from hard IRQ context,
that's usually scsi_done() (which can also be called from other
contexts).

James





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux