Commit 26ad0045 authored by John Snow's avatar John Snow
Browse files

qtest/ahci: simple ncq data test



Test the NCQ pathways for a simple IO RW test.
Also, test that libqos doesn't explode when
running NCQ commands :)

Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Message-id: 1435016308-6150-16-git-send-email-jsnow@redhat.com
parent e38cc93a
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1401,6 +1401,17 @@ static void test_reset(void)
    ahci_shutdown(ahci);
}

static void test_ncq_simple(void)
{
    AHCIQState *ahci;

    ahci = ahci_boot_and_enable(NULL);
    ahci_test_io_rw_simple(ahci, 4096, 0,
                           READ_FPDMA_QUEUED,
                           WRITE_FPDMA_QUEUED);
    ahci_shutdown(ahci);
}

/******************************************************************************/
/* AHCI I/O Test Matrix Definitions                                           */

@@ -1654,6 +1665,8 @@ int main(int argc, char **argv)
    qtest_add_func("/ahci/max", test_max);
    qtest_add_func("/ahci/reset", test_reset);

    qtest_add_func("/ahci/io/ncq/simple", test_ncq_simple);

    ret = g_test_run();

    /* Cleanup */
+25 −21
Original line number Diff line number Diff line
@@ -68,6 +68,10 @@ AHCICommandProp ahci_command_properties[] = {
                                 .lba48 = true, .write = true },
    { .cmd = CMD_IDENTIFY,       .data = true,  .pio = true,
                                 .size = 512,   .read = true },
    { .cmd = READ_FPDMA_QUEUED,  .data = true,  .dma = true,
                                 .lba48 = true, .read = true, .ncq = true },
    { .cmd = WRITE_FPDMA_QUEUED, .data = true,  .dma = true,
                                 .lba48 = true, .write = true, .ncq = true },
    { .cmd = CMD_READ_MAX,       .lba28 = true },
    { .cmd = CMD_READ_MAX_EXT,   .lba48 = true },
    { .cmd = CMD_FLUSH_CACHE,    .data = false }
+15 −12
Original line number Diff line number Diff line
@@ -276,7 +276,10 @@ enum {
    CMD_READ_MAX       = 0xF8,
    CMD_READ_MAX_EXT   = 0x27,
    CMD_FLUSH_CACHE    = 0xE7,
    CMD_IDENTIFY      = 0xEC
    CMD_IDENTIFY       = 0xEC,
    /* NCQ */
    READ_FPDMA_QUEUED  = 0x60,
    WRITE_FPDMA_QUEUED = 0x61,
};

/* AHCI Command Header Flags & Masks*/