Re: NCQ sg_io

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

 



On Wed, May 20, 2009 at 2:20 PM, Dan Porat <dan.porat@xxxxxxxxx> wrote:
> Thank plenty for your answer.
>
> So , what is the best way to send NCQ through user space ?
> Is it possible to disable the tagging mechanism by the driver and only
> rely on the tag given by the user space ?
That's one solution, but that's quite risky, it can be difficult to
guarantee nobody else access the disk. Another one is to alter
ata_scsi_pass_thru() to use qc->tag in case of FPDMA command. It is
already calculated before we enter the translation function.
Let me know how it goes,

Gwendal.

>
> Thanks
>
>
> On Wed, May 20, 2009 at 10:53 PM, Gwendal Grignou <gwendal@xxxxxxxxxx> wrote:
>> Hi Dan,
>>
>> tf->nsect can not be calculated from user space: the tag must be
>> calculated by the driver.
>>
>> Gwendal.
>>
>> On Tue, May 19, 2009 at 11:11 AM, Dan Porat <dan.porat@xxxxxxxxx> wrote:
>>> As I have seen sg_io does not support NCQ in ATA passthrough.
>>> will changing the mapping function libata-scsi.c (line 2745) , work?
>>>
>>> If not , how else can I check the protocol (FPDMA) ?
>>> static u8
>>> 2725ata_scsi_map_proto(u8 byte1)
>>> 2726{
>>> 2727        switch((byte1 & 0x1e) >> 1) {
>>> 2728        case 3:         /* Non-data */
>>> 2729                return ATA_PROT_NODATA;
>>> 2730
>>> 2731        case 6:         /* DMA */
>>> 2732        case 10:        /* UDMA Data-in */
>>> 2733        case 11:        /* UDMA Data-Out */
>>> 2734                return ATA_PROT_DMA;
>>> 2735
>>> 2736        case 4:         /* PIO Data-in */
>>> 2737        case 5:         /* PIO Data-out */
>>> 2738                return ATA_PROT_PIO;
>>> 2739
>>> 2745        case 12:        /* FPDMA */
>>>                       return ATA_PROT_NCQ
>>> 2740        case 0:         /* Hard Reset */
>>> 2741        case 1:         /* SRST */
>>> 2742        case 8:         /* Device Diagnostic */
>>> 2743        case 9:         /* Device Reset */
>>> 2744        case 7:         /* DMA Queued */
>>>
>>> 2746        case 15:        /* Return Response Info */
>>> 2747        default:        /* Reserved */
>>> 2748                break;
>>> 2749        }
>>> 2750
>>> 2751        return ATA_PROT_UNKNOWN;
>>> 2752}
>>>
>>>
>>>
>>> Thanks
>>>
>>> Dan Porat
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux