xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: DuanZhenzhong <zhenzhong.duan@oracle.com>
To: xen-devel@lists.xensource.com
Cc: joe.jin@oracle.com
Subject: [PATCH 2/2] hvmloader->rombios use C/H/S, LBA when have been set by qemu
Date: Mon, 25 Oct 2010 13:53:18 +0800	[thread overview]
Message-ID: <4CC51B4E.7050400@oracle.com> (raw)
In-Reply-To: <20100805233516.GB21473@joejin-pc.cn.oracle.com>

Hi,
Multiple guests rebooting, across multiple OVS nodes. Not all guest at 
the same time.
Error in /var/log/xend.log taking the form:
...
[2010-09-06 12:19:55 8816] WARNING (image:490) domain 234_sscgrantsd: 
device model failure: pid 16657: died due to signal 11; see
...

This is due to some ide state pointer in ide.c is NULL.
Patch from carnold@novell.com fixed this problem.
After applying, our system get steady.

--- xen-3.4.0.old/qemu-xen.git/hw/ide.c 2010-10-19 10:45:23.000000000 +0800
+++ xen-3.4.0/qemu-xen.git/hw/ide.c     2010-10-19 10:52:57.000000000 +0800
@@ -934,8 +934,9 @@ static inline void ide_dma_submit_check(

static inline void ide_set_irq(IDEState *s)
{
-    BMDMAState *bm = s->bmdma;
-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
+    BMDMAState *bm;
+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */
+    bm = s->bmdma;
     if (!(s->cmd & IDE_CMD_DISABLE_IRQ)) {
         if (bm) {
             bm->status |= BM_STATUS_INT;
@@ -1223,14 +1224,14 @@ static void ide_read_dma_cb(void *opaque
     int n;
     int64_t sector_num;

+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */
+
     if (ret < 0) {
         dma_buf_commit(s, 1);
        ide_dma_error(s);
        return;
     }

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
-
     n = s->io_buffer_size >> 9;
     sector_num = ide_get_sector(s);
     if (n > 0) {
@@ -1334,6 +1335,8 @@ static void ide_write_flush_cb(void *opa
     BMDMAState *bm = opaque;
     IDEState *s = bm->ide_if;

+    if (!s) return;
+
     if (ret != 0) {
        ide_dma_error(s);
        return;
@@ -1365,6 +1368,8 @@ static void ide_write_dma_cb(void *opaqu
     int n;
     int64_t sector_num;

+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */
+
     if (ret < 0) {
         if (ide_handle_write_error(s, -ret,  BM_STATUS_DMA_RETRY))
             return;
@@ -1375,8 +1380,6 @@ static void ide_write_dma_cb(void *opaqu
       return; /* ouch2 */
     }

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
-
     n = s->io_buffer_size >> 9;
     sector_num = ide_get_sector(s);
     if (n > 0) {
@@ -1433,7 +1436,7 @@ static void ide_flush_cb(void *opaque, i
{
     IDEState *s = opaque;

-    if (!s->bs) return; /* ouch! (see below) */
+    if (!s || !s->bs) return; /* ouch! (see below) */

     if (ret) {
         /* We are completely doomed.  The IDE spec does not permit us
@@ -1690,7 +1693,7 @@ static void ide_atapi_cmd_read_dma_cb(vo
     IDEState *s = bm->ide_if;
     int data_offset, n;

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */

     if (ret < 0) {
         ide_atapi_io_error(s, ret);
@@ -2368,7 +2371,7 @@ static void cdrom_change_cb(void *opaque
     IDEState *s = opaque;
     uint64_t nb_sectors;

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */

     bdrv_get_geometry(s->bs, &nb_sectors);
     s->nb_sectors = nb_sectors;

  parent reply	other threads:[~2010-10-25  5:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-05 23:35 [PATCH 0/2] Fix could not boot vm image which converted from phy-partition Joe Jin
2010-08-05 23:41 ` [PATCH 1/2] QEMU: Don't set all to default C/H/S when vm heads>16 Joe Jin
2010-08-05 23:49 ` [PATCH 2/2] hvmloader->rombios use C/H/S, LBA when have been set by qemu Joe Jin
2010-08-10 15:50 ` [PATCH 0/2] Fix could not boot vm image which converted from phy-partition Ian Jackson
2010-08-11  8:00   ` Joe Jin
2010-10-25  5:53 ` DuanZhenzhong [this message]
2010-10-26 16:23   ` [PATCH 2/2] hvmloader->rombios use C/H/S, LBA when have been set by qemu Ian Jackson

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=4CC51B4E.7050400@oracle.com \
    --to=zhenzhong.duan@oracle.com \
    --cc=joe.jin@oracle.com \
    --cc=xen-devel@lists.xensource.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).