Re: Would like some clarification on DATA_OVERRUN and QUEUE_FROZEN conditions

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Peter Wieland [MSFT] (peterwie_at_online.microsoft.com)
Date: 09/30/04


Date: Thu, 30 Sep 2004 10:28:14 -0700

you could set NO_QUEUE_FREEZE on every request you send to the device if you
don't need to do any recovery on an error. Personally i wouldn't worry
about the performance implications unless you're sending these every second
or more, but it definately reduces the chances that you'll go thorugh some
untested code path and leave the queue frozen (which definately slows down
I/O)

-p

-- 
This posting is provided "AS IS" with no warranties, and confers no rights.
"Robert Stankey" <robert.stankey@lsil.com> wrote in message 
news:jxoa10oj55j8.1kzc0i26uc9rb.dlg@40tude.net...
> On Wed, 29 Sep 2004 11:45:11 -0700, Peter Wieland [MSFT] wrote:
>
> Ah....makes sense!
>
> So, in the case where I know the buffer I'm allocating will be of
> sufficient size, I could use the NO_QUEUE_FREEZE option and avoid the
> QUEUE_FROZEN condition and performance hit (at least on requests I'm
> generating).
>
> Thanks Peter!
>
>
>> Scsiport freezes the queue on just about any error on the device.  It 
>> does
>> this so the class driver has an option to react to the error (retrieve 
>> extra
>> diagnostic data, change a setting on the device, restore volatile 
>> settings
>> on the device after a reset, restore a reservation, etc...).  If scsiport
>> didn't do this, then the class driver would have to wait for all 
>> outstanding
>> I/O to complete and block any new I/O, which would require adding extra
>> synchronoization into the class layer, which the storage stack tries to
>> avoid.
>>
>> if you think there may be more data than you have supplied buffer space 
>> for
>> then you can set NO_QUEUE_FREEZE on the SRB and should be able to avoid 
>> the
>> queue freeze.  For example, if you're trying to get the first part of the
>> inquiry page so you can read the additional length field and allocate a
>> properly sized buffer, you probably don't care so much about complex 
>> error
>> handling.
>>
>> -p 


Relevant Pages

  • Re: Would like some clarification on DATA_OVERRUN and QUEUE_FROZEN conditions
    ... in the case where I know the buffer I'm allocating will be of ... I could use the NO_QUEUE_FREEZE option and avoid the ... > this so the class driver has an option to react to the error (retrieve extra ...
    (microsoft.public.development.device.drivers)
  • [NT] Vulnerability Report for Windows SMB DoS
    ... cross-platform mechanism for client systems to request file services from ... In order to exploit the vulnerability a user account is needed for the ... is therefore vulnerable to a denial of service attack. ... Later in the processing of the request, at SRV.SYS+33209h another buffer ...
    (Securiteam)
  • Scenario to make recv(MSG_WAITALL) stuck
    ... Below is a scenario how to make recvwith MSG_WAITALL flag get stuck. ... Let's the size of the receive buffer is SOBUF_SIZE. ... TCP window probes. ... partial SOBUF_SIZE request. ...
    (freebsd-net)
  • Re: Scenario to make recv(MSG_WAITALL) stuck
    ... Below is a scenario how to make recvwith MSG_WAITALL flag get stuck. ... Let's the size of the receive buffer is SOBUF_SIZE. ... TCP window probes. ... partial SOBUF_SIZE request. ...
    (freebsd-net)
  • Re: DMA operation to 64-bits PC platform
    ... completing the request with IoCompleteRequest? ... your application buffer. ... FPGA to PC memory) at its own initiative. ... The driver recognises this request and pends it indefinitely, ...
    (comp.arch.fpga)