WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-bugs

[Xen-bugs] [Bug 1616] New: CPU panic when running cpu offline

To: xen-bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-bugs] [Bug 1616] New: CPU panic when running cpu offline
From: bugzilla-daemon@xxxxxxxxxxxxxxxxxxx
Date: Mon, 24 May 2010 08:39:52 -0700
Delivery-date: Mon, 24 May 2010 08:40:03 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-bugs-request@lists.xensource.com?subject=help>
List-id: Xen Bugzilla <xen-bugs.lists.xensource.com>
List-post: <mailto:xen-bugs@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=unsubscribe>
Reply-to: bugs@xxxxxxxxxxxxxxxxxx
Sender: xen-bugs-bounces@xxxxxxxxxxxxxxxxxxx
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1616

           Summary: CPU panic when running cpu offline
           Product: Xen
           Version: unstable
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: P1
         Component: Hypervisor
        AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx
        ReportedBy: jiajun.xu@xxxxxxxxx


Environment:
------------
Service Arch (ia32/ia32e/IA64): ia32
Guest Arch (ia32/ia32e/IA64): 
Guest OS Type (Linux/Windows):
Change Set: 21438
Hardware: Stoakley/Gulftown-HEDT
Other:
xen-changeset:   21438:840f269d95fb

pvops git:
commit a3e7c7b82c09450487a7e7f5f47b165c49474fd4
Merge: f3d5fe8... a47d360...
Author: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>

ioemu git:
commit 01626771cf2e9285fbfddcbded2820fc77745e4b
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date:   Fri Apr 30 17:41:45 2010 +0100

Bug detailed description:
--------------------------
when running cpu online/offine, CPU may panic. This bug not happen against
changeset 21380.

To repoduce the bug, you can compile the two attached C file and run following
script:
###################
#!/bin/sh
i=0

while [ $i -le 100 ]
do
./cpu_offline 1 2 3
./cpu_online 1 2 3
i=$(i+1)
done
###################

###############
/*
 *  xen_exec.c - hunt xen plugins 
 *
 *  Copyright (C) 2007 Intel Corporation 
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or (at
 *  your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful, but
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 *
 *  Authors:
 *      Haicheng Li <haicheng.li@xxxxxxxxx>
 *
 */

#include <stdio.h>
#include <string.h>
#include <errno.h>

#define _GNU_SOURCE
#include <getopt.h>

#include <xenctrl.h>

#define CPU_NUM 128

int xen_fd = 0;
int cpus[CPU_NUM] = { 0 };
int cpu_num = 0; 
int offline = 1; 

static int xen_cpu_online(void) {
        int rc = 0, err = 0, i;

        for (i = 0; i < cpu_num; i++) {
                rc = xc_cpu_online(xen_fd, cpus[i]);
                if (rc < 0) {
                        fprintf(stderr, "failed to online cpu%d : %s\n",
cpus[i], strerror(errno));
                        err++;
                } else 
                        fprintf(stdout, "cpu%d is online\n", cpus[i]);
        }
}       

static int xen_cpu_offline(void) {
        int rc = 0, err = 0, i;

        for (i = 0; i < cpu_num; i++) {
                rc = xc_cpu_offline(xen_fd, cpus[i]);
                if (rc < 0) {
                        fprintf(stderr, "failed to offline cpu%d : %s\n",
cpus[i], strerror(errno));
                        err++;
                } else 
                        fprintf(stdout, "cpu%d is offline\n", cpus[i]);
        }
}       

void usage(void) {
        printf("./cpu_hp [-a|-d|-h] cpuid \n");
        return;
}

int main(int argc, char **argv) {
        int rc = 0, i; 

        cpu_num = argc - 1;     

        if (cpu_num <= 0) {
                fprintf(stderr, "no cpu specified\n");
                rc = 1;
                goto error;
        }

        for (i = 0; i < cpu_num; i++) {
                cpus[i] = atoi(argv[i+1]);
        }

        xen_fd = xc_interface_open();
        if (xen_fd < 0) {       
                rc = 1;
                fprintf(stderr, "failed to open xc interface: %s\n",
strerror(errno));
        }

        if (offline)    
                xen_cpu_offline();
        else    
                xen_cpu_online();

error:
        return rc; 
}
###############


-- 
Configure bugmail: 
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs

<Prev in Thread] Current Thread [Next in Thread>