From: John Snow <jsnow@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com,
John Snow <jsnow@redhat.com>,
qemu-devel@nongnu.org, stefanha@redhat.com
Subject: [Qemu-devel] [PATCH 15/16] qtest/ahci: simple ncq data test
Date: Fri, 19 Jun 2015 21:50:46 -0400 [thread overview]
Message-ID: <1434765047-29333-16-git-send-email-jsnow@redhat.com> (raw)
In-Reply-To: <1434765047-29333-1-git-send-email-jsnow@redhat.com>
Test the NCQ pathways for a simple IO RW test.
Also, test that libqos doesn't explode when
running NCQ commands :)
Signed-off-by: John Snow <jsnow@redhat.com>
---
tests/ahci-test.c | 13 +++++++++++++
tests/libqos/ahci.c | 46 +++++++++++++++++++++++++---------------------
tests/libqos/ahci.h | 27 +++++++++++++++------------
3 files changed, 53 insertions(+), 33 deletions(-)
diff --git a/tests/ahci-test.c b/tests/ahci-test.c
index 43da3d1..941e0dd 100644
--- a/tests/ahci-test.c
+++ b/tests/ahci-test.c
@@ -1395,6 +1395,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 */
@@ -1653,6 +1664,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 */
diff --git a/tests/libqos/ahci.c b/tests/libqos/ahci.c
index 3d62cb6..33ecd2a 100644
--- a/tests/libqos/ahci.c
+++ b/tests/libqos/ahci.c
@@ -50,27 +50,31 @@ typedef struct AHCICommandProp {
} AHCICommandProp;
AHCICommandProp ahci_command_properties[] = {
- { .cmd = CMD_READ_PIO, .data = true, .pio = true,
- .lba28 = true, .read = true },
- { .cmd = CMD_WRITE_PIO, .data = true, .pio = true,
- .lba28 = true, .write = true },
- { .cmd = CMD_READ_PIO_EXT, .data = true, .pio = true,
- .lba48 = true, .read = true },
- { .cmd = CMD_WRITE_PIO_EXT, .data = true, .pio = true,
- .lba48 = true, .write = true },
- { .cmd = CMD_READ_DMA, .data = true, .dma = true,
- .lba28 = true, .read = true },
- { .cmd = CMD_WRITE_DMA, .data = true, .dma = true,
- .lba28 = true, .write = true },
- { .cmd = CMD_READ_DMA_EXT, .data = true, .dma = true,
- .lba48 = true, .read = true },
- { .cmd = CMD_WRITE_DMA_EXT, .data = true, .dma = true,
- .lba48 = true, .write = true },
- { .cmd = CMD_IDENTIFY, .data = true, .pio = true,
- .size = 512, .read = true },
- { .cmd = CMD_READ_MAX, .lba28 = true },
- { .cmd = CMD_READ_MAX_EXT, .lba48 = true },
- { .cmd = CMD_FLUSH_CACHE, .data = false }
+ { .cmd = CMD_READ_PIO, .data = true, .pio = true,
+ .lba28 = true, .read = true },
+ { .cmd = CMD_WRITE_PIO, .data = true, .pio = true,
+ .lba28 = true, .write = true },
+ { .cmd = CMD_READ_PIO_EXT, .data = true, .pio = true,
+ .lba48 = true, .read = true },
+ { .cmd = CMD_WRITE_PIO_EXT, .data = true, .pio = true,
+ .lba48 = true, .write = true },
+ { .cmd = CMD_READ_DMA, .data = true, .dma = true,
+ .lba28 = true, .read = true },
+ { .cmd = CMD_WRITE_DMA, .data = true, .dma = true,
+ .lba28 = true, .write = true },
+ { .cmd = CMD_READ_DMA_EXT, .data = true, .dma = true,
+ .lba48 = true, .read = true },
+ { .cmd = CMD_WRITE_DMA_EXT, .data = true, .dma = true,
+ .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 }
};
struct AHCICommand {
diff --git a/tests/libqos/ahci.h b/tests/libqos/ahci.h
index 594a1c9..a08a9dd 100644
--- a/tests/libqos/ahci.h
+++ b/tests/libqos/ahci.h
@@ -263,20 +263,23 @@ enum {
/* ATA Commands */
enum {
/* DMA */
- CMD_READ_DMA = 0xC8,
- CMD_READ_DMA_EXT = 0x25,
- CMD_WRITE_DMA = 0xCA,
- CMD_WRITE_DMA_EXT = 0x35,
+ CMD_READ_DMA = 0xC8,
+ CMD_READ_DMA_EXT = 0x25,
+ CMD_WRITE_DMA = 0xCA,
+ CMD_WRITE_DMA_EXT = 0x35,
/* PIO */
- CMD_READ_PIO = 0x20,
- CMD_READ_PIO_EXT = 0x24,
- CMD_WRITE_PIO = 0x30,
- CMD_WRITE_PIO_EXT = 0x34,
+ CMD_READ_PIO = 0x20,
+ CMD_READ_PIO_EXT = 0x24,
+ CMD_WRITE_PIO = 0x30,
+ CMD_WRITE_PIO_EXT = 0x34,
/* Misc */
- CMD_READ_MAX = 0xF8,
- CMD_READ_MAX_EXT = 0x27,
- CMD_FLUSH_CACHE = 0xE7,
- CMD_IDENTIFY = 0xEC
+ CMD_READ_MAX = 0xF8,
+ CMD_READ_MAX_EXT = 0x27,
+ CMD_FLUSH_CACHE = 0xE7,
+ CMD_IDENTIFY = 0xEC,
+ /* NCQ */
+ READ_FPDMA_QUEUED = 0x60,
+ WRITE_FPDMA_QUEUED = 0x61,
};
/* AHCI Command Header Flags & Masks*/
--
2.1.0
next prev parent reply other threads:[~2015-06-20 1:51 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-20 1:50 [Qemu-devel] [PATCH 00/16] ahci: ncq cleanup, part 1 John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 01/16] ahci: Rename NCQFIS structure fields John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 02/16] ahci: use shorter variables John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 03/16] ahci: add ncq_err helper John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 04/16] ahci: check for ncq prdtl overflow John Snow
2015-06-22 14:06 ` Stefan Hajnoczi
2015-06-22 14:08 ` John Snow
2015-06-23 13:46 ` Stefan Hajnoczi
2015-06-23 15:55 ` John Snow
2015-06-22 14:16 ` Stefan Hajnoczi
2015-06-20 1:50 ` [Qemu-devel] [PATCH 05/16] ahci: separate prdtl from opts John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 06/16] ahci: add ncq debug checks John Snow
2015-06-22 14:14 ` Stefan Hajnoczi
2015-06-20 1:50 ` [Qemu-devel] [PATCH 07/16] ahci: ncq sector count correction John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 08/16] ahci: clear error register before NCQ cmd John Snow
2015-06-22 14:38 ` Stefan Hajnoczi
2015-06-22 14:43 ` John Snow
2015-06-22 21:51 ` John Snow
2015-06-23 13:49 ` Stefan Hajnoczi
2015-06-20 1:50 ` [Qemu-devel] [PATCH 09/16] libqos/ahci: fix cmd_sanity for ncq John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 10/16] libqos/ahci: add NCQ frame support John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 11/16] libqos/ahci: edit wait to be ncq aware John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 12/16] libqos/ahci: adjust expected NCQ interrupts John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 13/16] libqos/ahci: set the NCQ tag on command_commit John Snow
2015-06-20 1:50 ` [Qemu-devel] [PATCH 14/16] libqos/ahci: Force all NCQ commands to be LBA48 John Snow
2015-06-20 1:50 ` John Snow [this message]
2015-06-20 1:50 ` [Qemu-devel] [PATCH 16/16] qtest/ahci: ncq migration test John Snow
2015-06-20 2:08 ` John Snow
2015-06-22 14:56 ` [Qemu-devel] [PATCH 00/16] ahci: ncq cleanup, part 1 Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1434765047-29333-16-git-send-email-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.