Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Nov 2010 15:28:45 +0200
From:      Alexander Motin <mav@FreeBSD.org>
To:        Joerg Schilling <Joerg.Schilling@fokus.fraunhofer.de>
Cc:        freebsd-scsi@FreeBSD.org, freebsd-current@FreeBSD.org, freebsd-stable@FreeBSD.org, marius@alchemy.franken.de
Subject:   Re: Sense fetching [Was: cdrtools /devel ...]
Message-ID:  <4CDBEF8D.5080001@FreeBSD.org>
In-Reply-To: <4cdbece1.EWYSqdvnx6XWF8EF%Joerg.Schilling@fokus.fraunhofer.de>
References:  <4CD45209.5010607@FreeBSD.org> <20101105192028.GA68728@alchemy.franken.de> <4cd822df.o/wBtwsNCXiy8xZn%Joerg.Schilling@fokus.fraunhofer.de> <4CD82E2A.3070407@FreeBSD.org> <4cd8320a.U7/OjtLLBVtE4dTy%Joerg.Schilling@fokus.fraunhofer.de> <4CD83535.1010008@FreeBSD.org> <4cdbbfef.v4cr/k2jZr9gdpyF%Joerg.Schilling@fokus.fraunhofer.de> <4CDBC55B.1040307@FreeBSD.org> <4cdbc65f.bo%2BmYNFB2GPwXmq7%Joerg.Schilling@fokus.fraunhofer.de> <4CDBEA8B.1020306@FreeBSD.org> <4cdbece1.EWYSqdvnx6XWF8EF%Joerg.Schilling@fokus.fraunhofer.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Joerg Schilling wrote:
> Alexander Motin <mav@FreeBSD.org> wrote:
> 
>>> Compare the number of sense bytes I like to request (18) with the number 
>>> previous FreeBSD versions did actually request. It is obvious that in case 
>>> there is a resid reported onm an old kernel, libscg (with your chanhge) would 
>>> believe that probably less that the absolute minumum of sense data is available.
>> Kernel code I have changed affects only controllers without automatic
>> sense fetching. For such controllers CAM previously always reported zero
>> sense_resid, independently of requested size (which actually was also
>> ignored in this case). So previously whatever you asked for 18 or 32
>> bytes - sense_resid was always zero, like if you got full 18 or 32
>> bytes. That was wrong. Now, in the same situation, if device wants to
>> return let's say 20 bytes -- you will get 0 and 12 bytes of sense_resid
>> respectively, meaning 18 and 20 bytes of received sense.
>>
>> AFAIK sense_resid always measured from the requested sense_len. In my
>> patch for libscg you may see that I have changed both request and
>> response paths. Resulted sense_count should be absolutely the same.
> 
> What is the requested size with the various HBAs in earlier kernels?

For HBAs with automatic sense fetching -- as passed in sence_len request
field. In case of libscg it was SSD_FULL_SIZE before and I've set it to
be real value now. Returned sense_resid should be real in both cases,
respecting submitted sense_len.

For HBAs without sense fetching, CAM was always requesting SSD_FULL_SIZE
and returned fake zero sense_resid, like if it just completely fulfilled
sense_len from request. Now it should start honor sense_len on request
and return real sense_resid on reply, relative to sense_len.

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CDBEF8D.5080001>