[libvirt] [PATCH] python: Fix typo in bindings
by Michal Privoznik
This typo caused a bug in which we wanted to free() invalid pointer.
---
python/libvirt-override.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/python/libvirt-override.c b/python/libvirt-override.c
index 11e1d0c..a151e78 100644
--- a/python/libvirt-override.c
+++ b/python/libvirt-override.c
@@ -2945,7 +2945,7 @@ libvirt_virEventRegisterImpl(ATTRIBUTE_UNUSED PyObject * self,
return VIR_PY_INT_FAIL;
/* Get argument string representations (for error reporting) */
- addHandleName = py_str(addTimeoutObj);
+ addHandleName = py_str(addHandleObj);
updateHandleName = py_str(updateHandleObj);
removeHandleName = py_str(removeHandleObj);
addTimeoutName = py_str(addTimeoutObj);
--
1.7.5.rc3
13 years, 6 months
[libvirt] [RFC PATCH] support multifunction PCI device
by Wen Congyang
We want to use more than 200+ device. Libvirt does not use multi
function PCI device and PCI-to-PCI bridge. So we can not use more
than 200+ device if it's a PCI device or it's controller is a PCI
device.
This patch adds the support of multi function PCI device. It
does not support to hot plug/unplug multi function PCI device.
TODO:
1. support to hot plug multi function PCI device
We only can hot plug one device at one time. I think we should
introduce another command 'virsh attach-devices XXX' to support
hot plug more than one device at one time?
2. support to hot unplug multi function PCI device
hot unpluging multi function PCI device meas that all the other
devices on the same slot will be hot unpluged. So we should do
some cleanup and remove the other devices too. If the other
device on the same slot does not support hot unpluged, or it is a
a controller and some other devices still use this controller,
I think we should refuse to hot unplug this mutlti function PCI
device.
>From 85a14928f2d445012f293638b44dd476a15aac3c Mon Sep 17 00:00:00 2001
From: Wen Congyang <wency(a)cn.fujitsu.com>
Date: Mon, 9 May 2011 14:59:16 +0800
Subject: [PATCH] multifunction PCI device
---
src/conf/domain_conf.c | 3 +
src/qemu/qemu_capabilities.c | 5 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 339 ++++++++++++++++++++++++++++++++++++------
src/qemu/qemu_command.h | 13 ++-
src/qemu/qemu_hotplug.c | 76 +++++++++-
src/qemu/qemu_process.c | 6 +-
tests/qemuhelptest.c | 3 +-
tests/qemuxml2argvtest.c | 2 +-
9 files changed, 390 insertions(+), 58 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d3efec6..83fdfe8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1237,6 +1237,9 @@ int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
int virDomainDevicePCIAddressIsValid(virDomainDevicePCIAddressPtr addr)
{
+ /* PCI bus has 32 slots and 8 functions per slot */
+ if (addr->slot >= 32 || addr->function >= 8)
+ return 0;
return addr->domain || addr->bus || addr->slot;
}
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 620143e..5d0145d 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -119,6 +119,8 @@ VIR_ENUM_IMPL(qemuCaps, QEMU_CAPS_LAST,
"device-spicevmc",
"virtio-tx-alg",
"device-qxl-vga",
+
+ "pci-multifunction", /* 60 */
);
struct qemu_feature_flags {
@@ -1024,6 +1026,9 @@ qemuCapsComputeCmdFlags(const char *help,
*/
if (version >= 13000)
qemuCapsSet(flags, QEMU_CAPS_MONITOR_JSON);
+
+ if (version >= 13000)
+ qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIFUNCTION);
}
/* We parse the output of 'qemu -help' to get the QEMU
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index ab47f22..4691e90 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -95,6 +95,7 @@ enum qemuCapsFlags {
QEMU_CAPS_DEVICE_SPICEVMC = 57, /* older -device spicevmc*/
QEMU_CAPS_VIRTIO_TX_ALG = 58, /* -device virtio-net-pci,tx=string */
QEMU_CAPS_DEVICE_QXL_VGA = 59, /* Is the primary and vga campatible qxl device named qxl-vga? */
+ QEMU_CAPS_PCI_MULTIFUNCTION = 60, /* -device multifunction=on|off */
QEMU_CAPS_LAST, /* this must always be the last item */
};
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 22b2634..9ac438c 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -667,9 +667,15 @@ qemuAssignDeviceAliases(virDomainDefPtr def, virBitmapPtr qemuCaps)
#define QEMU_PCI_ADDRESS_LAST_SLOT 31
+#define QEMU_PCI_ADDRESS_LAST_FUNCTION 7
+#define QEMU_PCI_ADDRESS_LAST_DEVFN 0xFF
+#define QEMU_PCI_ADDRESS_DEVFN(slot, function) (((slot) << 3) + (function))
+#define QEMU_PCI_ADDRESS_SLOT(devfn) (((devfn) >> 3) & 0x1f)
+#define QEMU_PCI_ADDRESS_FUNCTION(devfn) ((devfn) & 3)
struct _qemuDomainPCIAddressSet {
virHashTablePtr used;
int nextslot;
+ int nextfunction;
};
@@ -684,10 +690,11 @@ static char *qemuPCIAddressAsString(virDomainDeviceInfoPtr dev)
return NULL;
}
- if (virAsprintf(&addr, "%d:%d:%d",
+ if (virAsprintf(&addr, "%d:%d:%d.%d",
dev->addr.pci.domain,
dev->addr.pci.bus,
- dev->addr.pci.slot) < 0) {
+ dev->addr.pci.slot,
+ dev->addr.pci.function) < 0) {
virReportOOMError();
return NULL;
}
@@ -717,6 +724,29 @@ static int qemuCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED,
return 0;
}
+static void qemuGotoNextFunction(qemuDomainPCIAddressSetPtr addrs,
+ int current_slot, int current_function)
+{
+ int current_devfn, next_devfn;
+
+ current_devfn = QEMU_PCI_ADDRESS_DEVFN(current_slot, current_function);
+ next_devfn = QEMU_PCI_ADDRESS_DEVFN(addrs->nextslot, addrs->nextfunction);
+
+ if (current_devfn >= next_devfn) {
+ next_devfn = (current_devfn + 1) % (QEMU_PCI_ADDRESS_LAST_DEVFN + 1);
+ addrs->nextslot = QEMU_PCI_ADDRESS_SLOT(next_devfn);
+ addrs->nextfunction = QEMU_PCI_ADDRESS_FUNCTION(next_devfn);
+ }
+}
+
+static void qemuGotoNextSlot(qemuDomainPCIAddressSetPtr addrs,
+ int current_slot)
+{
+ if (current_slot >= addrs->nextslot) {
+ addrs->nextslot = (current_slot + 1) % (QEMU_PCI_ADDRESS_LAST_SLOT +1);
+ addrs->nextfunction = 0;
+ }
+}
int
qemuDomainAssignPCIAddresses(virDomainDefPtr def)
@@ -734,7 +764,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def)
if (!(addrs = qemuDomainPCIAddressSetCreate(def)))
goto cleanup;
- if (qemuAssignDevicePCISlots(def, addrs) < 0)
+ if (qemuAssignDevicePCISlots(def, addrs, qemuCaps) < 0)
goto cleanup;
}
@@ -777,6 +807,35 @@ error:
return NULL;
}
+/* check whether the slot is used by the other device
+ * Return 0 if the slot is not used by the other device, or -1 if the slot
+ * is used by the other device.
+ */
+static int qemuDomainPCIAddressCheckSlot(qemuDomainPCIAddressSetPtr addrs,
+ virDomainDeviceInfoPtr dev)
+{
+ char *addr;
+ virDomainDeviceInfo temp_dev;
+ int function;
+
+ temp_dev = *dev;
+ for (function = 0; function < QEMU_PCI_ADDRESS_LAST_FUNCTION; function++) {
+ temp_dev.addr.pci.function = function;
+ addr = qemuPCIAddressAsString(&temp_dev);
+ if (!addr)
+ return -1;
+
+ if (virHashLookup(addrs->used, addr)) {
+ VIR_FREE(addr);
+ return -1;
+ }
+
+ VIR_FREE(addr);
+ }
+
+ return 0;
+}
+
int qemuDomainPCIAddressReserveAddr(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev)
{
@@ -800,36 +859,61 @@ int qemuDomainPCIAddressReserveAddr(qemuDomainPCIAddressSetPtr addrs,
return -1;
}
- if (dev->addr.pci.slot > addrs->nextslot) {
- addrs->nextslot = dev->addr.pci.slot + 1;
- if (QEMU_PCI_ADDRESS_LAST_SLOT < addrs->nextslot)
- addrs->nextslot = 0;
- }
+ qemuGotoNextFunction(addrs, dev->addr.pci.slot, dev->addr.pci.function);
return 0;
}
-int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs,
- int slot)
+int qemuDomainPCIAddressReserveFunction(qemuDomainPCIAddressSetPtr addrs,
+ int slot, int function)
{
virDomainDeviceInfo dev;
dev.addr.pci.domain = 0;
dev.addr.pci.bus = 0;
dev.addr.pci.slot = slot;
+ dev.addr.pci.function = function;
return qemuDomainPCIAddressReserveAddr(addrs, &dev);
}
+int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs,
+ int slot)
+{
+ int function;
+
+ for (function = 0; function <= QEMU_PCI_ADDRESS_LAST_FUNCTION; function++) {
+ if (qemuDomainPCIAddressReserveFunction(addrs, slot, function) < 0)
+ goto cleanup;
+ }
+
+ return 0;
+
+cleanup:
+ for (function--; function >= 0; function--) {
+ qemuDomainPCIAddressReleaseFunction(addrs, slot, function);
+ }
+ return -1;
+}
int qemuDomainPCIAddressEnsureAddr(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev)
{
int ret = 0;
- if (dev->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)
- ret = qemuDomainPCIAddressReserveAddr(addrs, dev);
- else
- ret = qemuDomainPCIAddressSetNextAddr(addrs, dev);
+ if (dev->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
+ /* We do not support hotplug multi-function PCI device now, so we should
+ * reserve the whole slot. The function of the PCI device must be 0.
+ */
+ if (dev->addr.pci.function != 0) {
+ qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("Only PCI device addresses with function=0"
+ " are supported"));
+ return -1;
+ }
+
+ ret = qemuDomainPCIAddressReserveSlot(addrs, dev->addr.pci.slot);
+ } else
+ ret = qemuDomainPCIAddressSetNextSlot(addrs, dev);
return ret;
}
@@ -851,6 +935,48 @@ int qemuDomainPCIAddressReleaseAddr(qemuDomainPCIAddressSetPtr addrs,
return ret;
}
+int qemuDomainPCIAddressReleaseFunction(qemuDomainPCIAddressSetPtr addrs,
+ int slot, int function)
+{
+ virDomainDeviceInfo dev;
+
+ dev.addr.pci.domain = 0;
+ dev.addr.pci.bus = 0;
+ dev.addr.pci.slot = slot;
+ dev.addr.pci.function = function;
+
+ return qemuDomainPCIAddressReleaseAddr(addrs, &dev);
+}
+
+int qemuDomainPCIAddressReleaseSlot(qemuDomainPCIAddressSetPtr addrs, int slot)
+{
+ virDomainDeviceInfo dev;
+ char *addr;
+ int function;
+ int ret = 0;
+
+ dev.addr.pci.domain = 0;
+ dev.addr.pci.bus = 0;
+ dev.addr.pci.slot = slot;
+
+ for (function = 0; function <= QEMU_PCI_ADDRESS_LAST_FUNCTION; function++) {
+ addr = qemuPCIAddressAsString(&dev);
+ if (!addr)
+ return -1;
+
+ if (!virHashLookup(addrs->used, addr)) {
+ VIR_FREE(addr);
+ continue;
+ }
+
+ VIR_FREE(addr);
+
+ if (qemuDomainPCIAddressReleaseFunction(addrs, slot, function) < 0)
+ ret = -1;
+ }
+
+ return ret;
+}
void qemuDomainPCIAddressSetFree(qemuDomainPCIAddressSetPtr addrs)
{
@@ -861,8 +987,7 @@ void qemuDomainPCIAddressSetFree(qemuDomainPCIAddressSetPtr addrs)
VIR_FREE(addrs);
}
-
-int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs,
+int qemuDomainPCIAddressSetNextSlot(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev)
{
int i;
@@ -879,6 +1004,56 @@ int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs,
maybe.addr.pci.domain = 0;
maybe.addr.pci.bus = 0;
maybe.addr.pci.slot = i;
+ maybe.addr.pci.function = 0;
+
+ if (!(addr = qemuPCIAddressAsString(&maybe)))
+ return -1;
+
+ if (qemuDomainPCIAddressCheckSlot(addrs, &maybe) < 0) {
+ VIR_DEBUG("PCI addr %s already in use", addr);
+ VIR_FREE(addr);
+ continue;
+ }
+
+ VIR_DEBUG("Allocating PCI addr %s", addr);
+ VIR_FREE(addr);
+
+ if (qemuDomainPCIAddressReserveSlot(addrs, i) < 0)
+ return -1;
+
+ dev->type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
+ dev->addr.pci = maybe.addr.pci;
+
+ qemuGotoNextSlot(addrs, maybe.addr.pci.slot);
+
+ return 0;
+ }
+
+ qemuReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("No more available PCI addresses"));
+ return -1;
+}
+
+int qemuDomainPCIAddressSetNextFunction(qemuDomainPCIAddressSetPtr addrs,
+ virDomainDeviceInfoPtr dev)
+{
+ int i;
+ int iteration;
+ int next_devfn;
+
+ next_devfn = QEMU_PCI_ADDRESS_DEVFN(addrs->nextslot, addrs->nextfunction);
+ for (i = next_devfn, iteration = 0;
+ iteration <= QEMU_PCI_ADDRESS_LAST_DEVFN; i++, iteration++) {
+ virDomainDeviceInfo maybe;
+ char *addr;
+
+ if (QEMU_PCI_ADDRESS_LAST_DEVFN < i)
+ i = 0;
+ memset(&maybe, 0, sizeof(maybe));
+ maybe.addr.pci.domain = 0;
+ maybe.addr.pci.bus = 0;
+ maybe.addr.pci.slot = QEMU_PCI_ADDRESS_SLOT(i);
+ maybe.addr.pci.function = QEMU_PCI_ADDRESS_FUNCTION(i);
if (!(addr = qemuPCIAddressAsString(&maybe)))
return -1;
@@ -899,9 +1074,8 @@ int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs,
dev->type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
dev->addr.pci = maybe.addr.pci;
- addrs->nextslot = i + 1;
- if (QEMU_PCI_ADDRESS_LAST_SLOT < addrs->nextslot)
- addrs->nextslot = 0;
+ qemuGotoNextFunction(addrs, maybe.addr.pci.slot,
+ maybe.addr.pci.function);
return 0;
}
@@ -944,7 +1118,8 @@ int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs,
* skip over info.type == PCI
*/
int
-qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
+qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs,
+ virBitmapPtr qemuCaps)
{
int i;
bool reservedIDE = false;
@@ -1021,16 +1196,28 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
/* Only support VirtIO-9p-pci so far. If that changes,
* we might need to skip devices here */
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->fss[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->fss[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs, &def->fss[i]->info) < 0)
+ goto error;
+ }
}
/* Network interfaces */
for (i = 0; i < def->nnets ; i++) {
if (def->nets[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)
continue;
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->nets[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->nets[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs, &def->nets[i]->info) < 0)
+ goto error;
+ }
}
/* Sound cards */
@@ -1042,8 +1229,15 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
def->sounds[i]->model == VIR_DOMAIN_SOUND_MODEL_PCSPK)
continue;
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->sounds[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->sounds[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->sounds[i]->info) < 0)
+ goto error;
+ }
}
/* Disk controllers (SCSI only for now) */
@@ -1061,8 +1255,15 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
if (def->controllers[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)
continue;
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->controllers[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->controllers[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->controllers[i]->info) < 0)
+ goto error;
+ }
}
/* Disks (VirtIO only for now */
@@ -1074,8 +1275,15 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
if (def->disks[i]->bus != VIR_DOMAIN_DISK_BUS_VIRTIO)
continue;
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->disks[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->disks[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->disks[i]->info) < 0)
+ goto error;
+ }
}
/* Host PCI devices */
@@ -1086,32 +1294,60 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
def->hostdevs[i]->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
continue;
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->hostdevs[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->hostdevs[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->hostdevs[i]->info) < 0)
+ goto error;
+ }
}
/* VirtIO balloon */
if (def->memballoon &&
def->memballoon->model == VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO &&
def->memballoon->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->memballoon->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->memballoon->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->memballoon->info) < 0)
+ goto error;
+ }
}
/* A watchdog - skip IB700, it is not a PCI device */
if (def->watchdog &&
def->watchdog->model != VIR_DOMAIN_WATCHDOG_MODEL_IB700 &&
def->watchdog->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->watchdog->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->watchdog->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->watchdog->info) < 0)
+ goto error;
+ }
}
/* Further non-primary video cards */
for (i = 1; i < def->nvideos ; i++) {
if (def->videos[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)
continue;
- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->videos[i]->info) < 0)
- goto error;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (qemuDomainPCIAddressSetNextFunction(addrs,
+ &def->videos[i]->info) < 0)
+ goto error;
+ } else {
+ if (qemuDomainPCIAddressSetNextSlot(addrs,
+ &def->videos[i]->info) < 0)
+ goto error;
+ }
}
for (i = 0; i < def->ninputs ; i++) {
/* Nada - none are PCI based (yet) */
@@ -1149,10 +1385,20 @@ qemuBuildDeviceAddressStr(virBufferPtr buf,
_("Only PCI device addresses with bus=0 are supported"));
return -1;
}
- if (info->addr.pci.function != 0) {
- qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("Only PCI device addresses with function=0 are supported"));
- return -1;
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION)) {
+ if (info->addr.pci.function > 7) {
+ qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("The function of PCI device addresses must "
+ "less than 8"));
+ return -1;
+ }
+ } else {
+ if (info->addr.pci.function != 0) {
+ qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("Only PCI device addresses with function=0 "
+ "are supported"));
+ return -1;
+ }
}
/* XXX
@@ -1162,9 +1408,14 @@ qemuBuildDeviceAddressStr(virBufferPtr buf,
* to pciNN.0 where NN is the domain number
*/
if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS))
- virBufferAsprintf(buf, ",bus=pci.0,addr=0x%x", info->addr.pci.slot);
+ virBufferAsprintf(buf, ",bus=pci.0");
+ else
+ virBufferAsprintf(buf, ",bus=pci");
+ if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION))
+ virBufferAsprintf(buf, ",multifunction=on,addr=0x%x.0x%x",
+ info->addr.pci.slot, info->addr.pci.function);
else
- virBufferAsprintf(buf, ",bus=pci,addr=0x%x", info->addr.pci.slot);
+ virBufferAsprintf(buf, ",addr=0x%x", info->addr.pci.slot);
}
return 0;
}
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index 528031d..1a4f471 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -146,19 +146,28 @@ virDomainDefPtr qemuParseCommandLineString(virCapsPtr caps,
int qemuDomainAssignPCIAddresses(virDomainDefPtr def);
qemuDomainPCIAddressSetPtr qemuDomainPCIAddressSetCreate(virDomainDefPtr def);
+int qemuDomainPCIAddressReserveFunction(qemuDomainPCIAddressSetPtr addrs,
+ int slot, int function);
int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs,
int slot);
int qemuDomainPCIAddressReserveAddr(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev);
-int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs,
+int qemuDomainPCIAddressSetNextSlot(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev);
+int qemuDomainPCIAddressSetNextFunction(qemuDomainPCIAddressSetPtr addrs,
+ virDomainDeviceInfoPtr dev);
int qemuDomainPCIAddressEnsureAddr(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev);
int qemuDomainPCIAddressReleaseAddr(qemuDomainPCIAddressSetPtr addrs,
virDomainDeviceInfoPtr dev);
+int qemuDomainPCIAddressReleaseFunction(qemuDomainPCIAddressSetPtr addrs,
+ int slot, int function);
+int qemuDomainPCIAddressReleaseSlot(qemuDomainPCIAddressSetPtr addrs, int slot);
void qemuDomainPCIAddressSetFree(qemuDomainPCIAddressSetPtr addrs);
-int qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs);
+int qemuAssignDevicePCISlots(virDomainDefPtr def,
+ qemuDomainPCIAddressSetPtr addrs,
+ virBitmapPtr qemuCaps);
int qemuDomainNetVLAN(virDomainNetDefPtr def);
int qemuAssignDeviceNetAlias(virDomainDefPtr def, virDomainNetDefPtr net, int idx);
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index dae2269..4731959 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -221,7 +221,8 @@ error:
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
(disk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) &&
releaseaddr &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &disk->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ disk->info.addr.pci.slot) < 0)
VIR_WARN("Unable to release PCI address on %s", disk->src);
if (virSecurityManagerRestoreImageLabel(driver->securityManager,
@@ -290,7 +291,8 @@ cleanup:
qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
(controller->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) &&
releaseaddr &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &controller->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ controller->info.addr.pci.slot) < 0)
VIR_WARN0("Unable to release PCI address on controller");
VIR_FREE(devstr);
@@ -697,7 +699,8 @@ cleanup:
qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
(net->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) &&
releaseaddr &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &net->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ net->info.addr.pci.slot) < 0)
VIR_WARN0("Unable to release PCI address on NIC");
if (ret != 0)
@@ -828,7 +831,8 @@ error:
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
(hostdev->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) &&
releaseaddr &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &hostdev->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ hostdev->info.addr.pci.slot) < 0)
VIR_WARN0("Unable to release PCI address on host device");
qemuDomainReAttachHostdevDevices(driver, &hostdev, 1);
@@ -1100,6 +1104,30 @@ static inline int qemuFindDisk(virDomainDefPtr def, const char *dst)
return -1;
}
+static int qemuComparePCIDevice(virDomainDefPtr def ATTRIBUTE_UNUSED,
+ virDomainDeviceInfoPtr dev1,
+ void *opaque)
+{
+ virDomainDeviceInfoPtr dev2 = opaque;
+
+ if (dev1->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI ||
+ dev2->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)
+ return 0;
+
+ if (dev1->addr.pci.slot == dev2->addr.pci.slot &&
+ dev1->addr.pci.function != dev2->addr.pci.function)
+ return -1;
+ return 0;
+}
+
+static bool qemuIsMultiFunctionDevice(virDomainDefPtr def,
+ virDomainDeviceInfoPtr dev)
+{
+ if (virDomainDeviceInfoIterate(def, qemuComparePCIDevice, dev) < 0)
+ return true;
+ return false;
+}
+
int qemuDomainDetachPciDiskDevice(struct qemud_driver *driver,
virDomainObjPtr vm,
@@ -1121,6 +1149,13 @@ int qemuDomainDetachPciDiskDevice(struct qemud_driver *driver,
detach = vm->def->disks[i];
+ if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
+ qemuReportError(VIR_ERR_OPERATION_FAILED,
+ _("cannot hot unplug multifunction PCI device: %s"),
+ dev->data.disk->dst);
+ goto cleanup;
+ }
+
if (qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_DEVICES)) {
if (virCgroupForDomain(driver->cgroup, vm->def->name, &cgroup, 0) != 0) {
qemuReportError(VIR_ERR_INTERNAL_ERROR,
@@ -1167,7 +1202,8 @@ int qemuDomainDetachPciDiskDevice(struct qemud_driver *driver,
qemuAuditDisk(vm, detach, NULL, "detach", ret >= 0);
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ detach->info.addr.pci.slot) < 0)
VIR_WARN("Unable to release PCI address on %s", dev->data.disk->src);
virDomainDiskRemove(vm->def, i);
@@ -1351,6 +1387,13 @@ int qemuDomainDetachPciControllerDevice(struct qemud_driver *driver,
goto cleanup;
}
+ if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
+ qemuReportError(VIR_ERR_OPERATION_FAILED,
+ _("cannot hot unplug multifunction PCI device: %s"),
+ dev->data.disk->dst);
+ goto cleanup;
+ }
+
if (qemuDomainControllerIsBusy(vm, detach)) {
qemuReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("device cannot be detached: device is busy"));
@@ -1392,7 +1435,8 @@ int qemuDomainDetachPciControllerDevice(struct qemud_driver *driver,
}
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ detach->info.addr.pci.slot) < 0)
VIR_WARN0("Unable to release PCI address on controller");
virDomainControllerDefFree(detach);
@@ -1438,6 +1482,13 @@ int qemuDomainDetachNetDevice(struct qemud_driver *driver,
goto cleanup;
}
+ if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
+ qemuReportError(VIR_ERR_OPERATION_FAILED,
+ _("cannot hot unplug multifunction PCI device :%s"),
+ dev->data.disk->dst);
+ goto cleanup;
+ }
+
if ((vlan = qemuDomainNetVLAN(detach)) < 0) {
qemuReportError(VIR_ERR_OPERATION_FAILED,
"%s", _("unable to determine original VLAN"));
@@ -1484,7 +1535,8 @@ int qemuDomainDetachNetDevice(struct qemud_driver *driver,
qemuAuditNet(vm, detach, NULL, "detach", true);
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ detach->info.addr.pci.slot) < 0)
VIR_WARN0("Unable to release PCI address on NIC");
virDomainConfNWFilterTeardown(detach);
@@ -1567,6 +1619,13 @@ int qemuDomainDetachHostPciDevice(struct qemud_driver *driver,
return -1;
}
+ if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
+ qemuReportError(VIR_ERR_OPERATION_FAILED,
+ _("cannot hot unplug multifunction PCI device: %s"),
+ dev->data.disk->dst);
+ return -1;
+ }
+
if (!virDomainDeviceAddressIsValid(&detach->info,
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)) {
qemuReportError(VIR_ERR_OPERATION_FAILED,
@@ -1601,7 +1660,8 @@ int qemuDomainDetachHostPciDevice(struct qemud_driver *driver,
}
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
- qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
+ qemuDomainPCIAddressReleaseSlot(priv->pciaddrs,
+ detach->info.addr.pci.slot) < 0)
VIR_WARN0("Unable to release PCI address on host device");
if (vm->def->nhostdevs > 1) {
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index bd7c932..f3fe78c 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -1921,7 +1921,8 @@ qemuProcessReconnect(void *payload, const void *name ATTRIBUTE_UNUSED, void *opa
priv->persistentAddrs = 1;
if (!(priv->pciaddrs = qemuDomainPCIAddressSetCreate(obj->def)) ||
- qemuAssignDevicePCISlots(obj->def, priv->pciaddrs) < 0)
+ qemuAssignDevicePCISlots(obj->def, priv->pciaddrs,
+ priv->qemuCaps) < 0)
goto error;
}
@@ -2187,7 +2188,8 @@ int qemuProcessStart(virConnectPtr conn,
/* Assign any remaining addresses */
- if (qemuAssignDevicePCISlots(vm->def, priv->pciaddrs) < 0)
+ if (qemuAssignDevicePCISlots(vm->def, priv->pciaddrs,
+ priv->qemuCaps) < 0)
goto cleanup;
priv->persistentAddrs = 1;
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index 2522396..2a0a923 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -430,7 +430,8 @@ mymain(void)
QEMU_CAPS_VGA_NONE,
QEMU_CAPS_MIGRATE_QEMU_FD,
QEMU_CAPS_DRIVE_AIO,
- QEMU_CAPS_DEVICE_SPICEVMC);
+ QEMU_CAPS_DEVICE_SPICEVMC,
+ QEMU_CAPS_PCI_MULTIFUNCTION);
DO_TEST("qemu-kvm-0.12.1.2-rhel61", 12001, 1, 0,
QEMU_CAPS_VNC_COLON,
QEMU_CAPS_NO_REBOOT,
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index a7e4cc0..04b8326 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -96,7 +96,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
if (!(pciaddrs = qemuDomainPCIAddressSetCreate(vmdef)))
goto fail;
- if (qemuAssignDevicePCISlots(vmdef, pciaddrs) < 0)
+ if (qemuAssignDevicePCISlots(vmdef, pciaddrs, extraFlags) < 0)
goto fail;
qemuDomainPCIAddressSetFree(pciaddrs);
--
1.7.1
13 years, 6 months
[libvirt] [PATCH 0/3] Fix some building errors
by Wen Congyang
Wen Congyang (3):
build: generate files when building without libvirtd
build: probes.d and libvirtd.stp should be part of tarball
test: all test_scripts should be part of tarball when building
without libvirtd
daemon/Makefile.am | 110 ++++++++++++++++++++++++++--------------------------
tests/Makefile.am | 18 ++++++++
2 files changed, 73 insertions(+), 55 deletions(-)
13 years, 6 months
[libvirt] [PATCH] docs: Fix error syntax of vcpupin example XML
by Osier Yang
Lacks of "/", push this directly in trivial rule.
---
docs/formatdomain.html.in | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index facdaf2..59c3d51 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -289,10 +289,10 @@
</memtune>
<vcpu cpuset="1-4,^3,6" current="1">2</vcpu>
<cputune>
- <vcpupin vcpu="0" cpuset="1-4,^2">
- <vcpupin vcpu="1" cpuset="0,1">
- <vcpupin vcpu="2" cpuset="2,3">
- <vcpupin vcpu="3" cpuset="0,4">
+ <vcpupin vcpu="0" cpuset="1-4,^2"/>
+ <vcpupin vcpu="1" cpuset="0,1"/>
+ <vcpupin vcpu="2" cpuset="2,3"/>
+ <vcpupin vcpu="3" cpuset="0,4"/>
<cpushares>2048</cpushares>
</cputune>
...</pre>
--
1.7.1
13 years, 6 months
[libvirt] vhost-net configuration
by Cal Heldenbrand
Hi everyone,
I'm trying to test out the virtio driver's "tx=bh" option, or iothread in
libvirt. When I create a machine, I get the "unsupported" error message:
# virsh create web101.xml
error: Failed to create domain from web101.xml
error: unsupported configuration: vhost-net is not supported with this QEMU
binary
My interface XML looks like this:
<interface type='bridge'>
<mac address='52:54:00:6f:51:43'/>
<source bridge='vnet0'/>
<model type='virtio'/>
<driver name='vhost' txmode='iothread'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
I've compiled libvirt (0.9.1) and QEMU (0.14.1) from source, but am still
using my distro's kernel, 2.6.32-71.29.1.el6.x86_64. (Scientific Linux 6)
Thanks, and please let me know if you need any more info!
--Cal
13 years, 6 months
[libvirt] [RFC][PATCH 0/7] interface: Transaction API
by Michal Privoznik
This is a RFC implementation of what some may call network transaction API.
The new interface driver functions now do not contain anything valuable,
they are just stub. Later on, a real netcf calls will be added. This should
only give us an image of whole thing. So any comments are more than welcome.
The new API is accessible via new virsh command: iface-change with 3 options:
start, commit, rollback. The test driver actually works, moreover it works
as expected later within real deployment.
Michal Privoznik (7):
interface: add new public API
interface: define internal driver API
interface: implement the public APIs
interface: implement the remote protocol
interface: expose to virsh
interface: Implement the driver methods
interface: implement test driver
configure.ac | 5 ++
include/libvirt/libvirt.h.in | 7 ++
src/driver.h | 12 ++++
src/esx/esx_interface_driver.c | 3 +
src/interface/netcf_driver.c | 39 ++++++++++++
src/libvirt.c | 129 ++++++++++++++++++++++++++++++++++++++++
src/libvirt_public.syms | 7 ++
src/phyp/phyp_driver.c | 5 +-
src/remote/remote_driver.c | 3 +
src/remote/remote_protocol.x | 18 +++++-
src/remote_protocol-structs | 9 +++
src/test/test_driver.c | 113 +++++++++++++++++++++++++++++++++++
tools/virsh.c | 59 ++++++++++++++++++
13 files changed, 407 insertions(+), 2 deletions(-)
--
1.7.5.rc3
13 years, 6 months
[libvirt] [PATCH] qemudDomainMemoryPeek: chown temporary file to qemu.qemu.
by Richard W.M. Jones
This attached patch resolves a fairly obvious problem which stops
qemuDomainMemoryPeek from working at all.
However, it's not the whole story. Read on ...
(1) qemu still fails unless I manually set the mode of
/var/cache/libvirt to 0755 (it is normally 0700).
Owner Fails Works
/var/cache/libvirt root.root 0700 0755
/var/cache/libvirt/qemu qemu.qemu 0750 0750
qemu is doing:
open("/var/cache/libvirt/qemu/qemu.mem.fdVCod", O_WRONLY|O_CREAT|O_TRUNC, 0666)
It's kinda annoying that /etc/libvirt and /var/{cache,lib}/libvirt are
unreadable by other users. Is there some deep reason to do this?
(2) After applying this patch, using virDomainMemoryPeek causes
libvirtd to generate the following serious-looking warning. It
doesn't appear to crash or fail in any way that I can tell:
15:17:09.982: 7784: error : virDomainFree:2122 : invalid domain pointer in virDomainFree
I don't know where this is coming from. It only appears when my
program actually does virDomainMemoryPeek, not when I have the same
code with virDomainMemoryPeek commented out.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top
13 years, 6 months
[libvirt] phy driver
by Serge Hallyn
Hi,
something like <disk type='block'> <driver name='phy'/> <source dev='%s'/>
<target dev='sdb'/> </disk> used to be allowed. But now it appears (looking at
git history) only <driver name='qemu'> is supported. Is that correct? Should
tools which are spitting out libvirt xml be updated to use 'qemu', or is there
something else going on?
thanks,
-serge
13 years, 6 months
[libvirt] libvirt 0.8.2 issues
by Guangya Liu
Hi libvirt support,
Found an interesting problem for Rhel, libvirt 0.8.2 is shipped with the
distribution of Rhel5u6; libvirt 0.8.1 is shipped with the distributions
of Rhel6, do you know why, why did we downgrade the version for libvirt
when upgrading to Rhel6?
We upgrade recently libvirt in our compute nodes. Now we are running the
0.8.2 version. We encounter a problem as following:
In our production instance each compute node has 24GB of memory and each
VM has 2GB of memory (8VMs x 2 GB). So enough space for them.
[root@lxbst0501 ~]# free
total used free shared buffers
cached
Mem: 24676304 8191072 16485232 0 305408
5255460
-/+ buffers/cache: 2630204 22046100
Swap: 4192956 0 4192956
If I try to start the VMs by hand, I get the following error:
[root@lxbst0501 ~]# virsh start vmbst050107
error: Failed to start domain vmbst050107
error: internal error Process exited while reading console log output:
Could not allocate physical memory
virsh # version
Compiled against library: libvir 0.8.2
Using library: libvir 0.8.2
Using API: QEMU 0.8.2
Running hypervisor: QEMU 0.10.5
[root@lxbst0501 ~]# /usr/sbin/libvirtd --version
/usr/sbin/libvirtd (libvirt) 0.8.2
[root@lxbst0501 ~]# cat /etc/redhat-release
Scientific Linux CERN SLC release 5.6 (Boron)
More information about the kvm version that we are running:
[root@lxbst0501 ~]# modinfo kvm_intel
filename:
/lib/modules/2.6.18-238.5.1.el5/weak-updates/kmod-kvm/kvm-intel.ko
license: GPL
author: Qumranet
version: kvm-83-224.el5
srcversion: D94F9D8333D8C6AC615B53E
depends: kvm
vermagic: 2.6.18-238.el5 SMP mod_unload gcc-4.1
parm: bypass_guest_pf:bool
parm: enable_vpid:bool
parm: flexpriority_enabled:bool
parm: enable_ept:bool
parm: emulate_invalid_guest_state:bool
[root@lxbst0501 ~]# kvm
QEMU PC emulator version 0.9.1 (kvm-83-maint-snapshot-20090205),
Copyright (c) 2003-2008 Fabrice Bellard
[root@lxbst0501 ~]# LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin
/usr/bin/kvm -S -M rhel5.4.0 -m 2048 -smp 1,sockets=1,cores=1,threads=1
-name vmbst050100 -uuid b7c85c96-511d-4a46-8de0-37b9edaf4ce9 -nographic
-monitor unix:/var/lib/libvirt/qemu/vmbst050100.monitor,server,nowait
-no-kvm-pit-reinjection -boot c -drive
file=/dev/xen_vg/vmbst050100_1.img,if=virtio,boot=on,format=raw,cache=no
ne
-drive
file=/afs/cern.ch/project/isf/contextualization/isoimages/glExecWN_slc5_
x86_64_kvm.iso,if=virtio,media=cdrom,readonly=on,format=raw
-drive
file=/dev/xen_vg/afscache-00-16-3e-00-49-ba,if=virtio,format=raw,cache=n
one
-drive
file=/dev/xen_vg/pool-00-16-3e-00-49-ba,if=virtio,format=raw,cache=none
-drive
file=/dev/xen_vg/cvmfs-00-16-3e-00-49-ba,if=virtio,format=raw,cache=none
-drive
file=/VMOxen/storage/local/images/vmbst050100.iso,if=ide,media=cdrom,bus
=1,unit=0,readonly=on,format=raw
-net nic,macaddr=00:16:3e:00:49:ba,vlan=0,model=virtio -net
tap,fd=17,vlan=0 -serial pty -parallel none -usb -balloon virtio
TUNGETIFF ioctl() failed: Bad file descriptor
TUNSETSNDBUF ioctl failed: Bad file descriptor
Could not allocate physical memory
Using strace to run the command.
[root@lxbst0501 ~]# LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin strace
/usr/bin/kvm -S -M rhel5.4.0 -m 2048 -smp 1,sockets=1,cores=1,threads=1
-name vmbst050100 -uuid b7c85c96-511d-4a46-8de0-37b9edaf4ce9 -nographic
-monitor unix:/var/lib/libvirt/qemu/vmbst050100.monitor,server,nowait
-no-kvm-pit-reinjection -boot c -drive
file=/dev/xen_vg/vmbst050100_1.img,if=virtio,boot=on,format=raw,cache=no
ne
-drive
file=/afs/cern.ch/project/isf/contextualization/isoimages/glExecWN_slc5_
x86_64_kvm.iso,if=virtio,media=cdrom,readonly=on,format=raw
-drive
file=/dev/xen_vg/afscache-00-16-3e-00-49-ba,if=virtio,format=raw,cache=n
one
-drive
file=/dev/xen_vg/pool-00-16-3e-00-49-ba,if=virtio,format=raw,cache=none
-drive
file=/dev/xen_vg/cvmfs-00-16-3e-00-49-ba,if=virtio,format=raw,cache=none
-drive
file=/VMOxen/storage/local/images/vmbst050100.iso,if=ide,media=cdrom,bus
=1,unit=0,readonly=on,format=raw
-net nic,macaddr=00:16:3e:00:49:ba,vlan=0,model=virtio -net
tap,fd=17,vlan=0 -serial pty -parallel none -usb -balloon virtio
execve("/usr/bin/kvm", ["/usr/bin/kvm", "-S", "-M", "rhel5.4.0", "-m",
"2048", "-smp", "1,sockets=1,cores=1,threads=1", "-name", "vmbst050100",
"-uuid", "b7c85c96-511d-4a46-8de0-37b9edaf", "-nographic", "-monitor",
"unix:/var/lib/libvirt/qemu/vmbst", "-no-kvm-pit-reinjection", ...], [/*
22 vars */]) = 0
brk(0) = 0x196b8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b469709e000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b469709f000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=29122, ...}) = 0
mmap(NULL, 29122, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b46970a0000
close(3) = 0
open("/lib64/libm.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`>@\0204\0\0\0"..., 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=615160, ...}) = 0
mmap(0x3410400000, 2629848, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3410400000
mprotect(0x3410482000, 2093056, PROT_NONE) = 0
mmap(0x3410681000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x81000) = 0x3410681000
close(3) = 0
open("/usr/lib64/libspice.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`d\200\0334\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=636344, ...}) = 0
mmap(0x341b800000, 2744160, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341b800000
mprotect(0x341b899000, 2097152, PROT_NONE) = 0
mmap(0x341ba99000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x99000) = 0x341ba99000
mmap(0x341ba9b000, 12128, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x341ba9b000
close(3) = 0
open("/usr/lib64/liblog4cpp.so.4", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200Q\1\0344\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=265392, ...}) = 0
mmap(0x341c000000, 2358584, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341c000000
mprotect(0x341c03e000, 2093056, PROT_NONE) = 0
mmap(0x341c23d000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3d000) = 0x341c23d000
close(3) = 0
open("/lib64/libnsl.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240@@\0224\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=114376, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970a8000
mmap(0x3412400000, 2194096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3412400000
mprotect(0x3412415000, 2093056, PROT_NONE) = 0
mmap(0x3412614000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x3412614000
mmap(0x3412616000, 6832, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3412616000
close(3) = 0
open("/usr/lib64/libpng12.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220E@\0314\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145224, ...}) = 0
mmap(0x3419400000, 2238144, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3419400000
mprotect(0x3419422000, 2097152, PROT_NONE) = 0
mmap(0x3419622000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x3419622000
close(3) = 0
open("/usr/lib64/libqcairo.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\232@\0324\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=476712, ...}) = 0
mmap(0x341a400000, 2571096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341a400000
mprotect(0x341a471000, 2097152, PROT_NONE) = 0
mmap(0x341a671000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x71000) = 0x341a671000
close(3) = 0
open("/usr/lib64/libcelt051.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\r\0\0324\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=59184, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970a9000
mmap(0x341a000000, 2152144, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341a000000
mprotect(0x341a00d000, 2097152, PROT_NONE) = 0
mmap(0x341a20d000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0x341a20d000
close(3) = 0
open("/usr/lib64/libqavcodec.so.51", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\262\200\0344\0\0\0".
..,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=514296, ...}) = 0
mmap(0x341c800000, 2658024, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341c800000
mprotect(0x341c873000, 2097152, PROT_NONE) = 0
mmap(0x341ca73000, 40960, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x73000) = 0x341ca73000
mmap(0x341ca7d000, 48872, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x341ca7d000
close(3) = 0
open("/usr/lib64/libqavutil.so.49", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\30\0\0334\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=39384, ...}) = 0
mmap(0x341b000000, 2146168, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341b000000
mprotect(0x341b009000, 2093056, PROT_NONE) = 0
mmap(0x341b208000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x341b208000
mmap(0x341b209000, 12152, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x341b209000
close(3) = 0
open("/lib64/libasound.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\327B\0274\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=900960, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970aa000
mmap(0x3417400000, 2994088, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3417400000
mprotect(0x34174d4000, 2093056, PROT_NONE) = 0
mmap(0x34176d3000, 32768, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd3000) = 0x34176d3000
close(3) = 0
open("/lib64/libssl.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260,\301\0264\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=311512, ...}) = 0
mmap(0x3416c00000, 2404272, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3416c00000
mprotect(0x3416c46000, 2093056, PROT_NONE) = 0
mmap(0x3416e45000, 24576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x45000) = 0x3416e45000
close(3) = 0
open("/lib64/libcrypto.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\231E\0244\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1359680, ...}) = 0
mmap(0x3414400000, 3468656, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3414400000
mprotect(0x341452b000, 2093056, PROT_NONE) = 0
mmap(0x341472a000, 135168, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12a000) = 0x341472a000
mmap(0x341474b000, 15728, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x341474b000
close(3) = 0
open("/usr/lib64/libz.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\36\300\0204\0\0\0"..
.,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=85608, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970ab000
mmap(0x3410c00000, 2178600, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3410c00000
mprotect(0x3410c14000, 2093056, PROT_NONE) = 0
mmap(0x3410e13000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x3410e13000
close(3) = 0
open("/usr/lib64/libXrandr.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\16\300\0304\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14984, ...}) = 0
mmap(0x3418c00000, 2107944, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3418c00000
mprotect(0x3418c03000, 2093056, PROT_NONE) = 0
mmap(0x3418e02000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3418e02000
close(3) = 0
open("/usr/lib64/libplds4.so", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\16@\0234\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=13960, ...}) = 0
mmap(0x3413400000, 2106896, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3413400000
mprotect(0x3413403000, 2093056, PROT_NONE) = 0
mmap(0x3413602000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3413602000
close(3) = 0
open("/usr/lib64/libplc4.so", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\23\200\0224\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=17992, ...}) = 0
mmap(0x3412800000, 2110904, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3412800000
mprotect(0x3412804000, 2093056, PROT_NONE) = 0
mmap(0x3412a03000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x3412a03000
close(3) = 0
open("/usr/lib64/libnspr4.so", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\315\300\0234\0\0\0".
..,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=229720, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970ac000
mmap(0x3413c00000, 2333184, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3413c00000
mprotect(0x3413c36000, 2093056, PROT_NONE) = 0
mmap(0x3413e35000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x35000) = 0x3413e35000
mmap(0x3413e38000, 6656, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3413e38000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240W\200\0204\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145848, ...}) = 0
mmap(0x3410800000, 2204528, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3410800000
mprotect(0x3410816000, 2093056, PROT_NONE) = 0
mmap(0x3410a15000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x3410a15000
mmap(0x3410a17000, 13168, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3410a17000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16\0\0204\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=23376, ...}) = 0
mmap(0x3410000000, 2109696, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3410000000
mprotect(0x3410002000, 2097152, PROT_NONE) = 0
mmap(0x3410202000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3410202000
close(3) = 0
open("/usr/lib64/libgnutls.so.13", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\332\201\0314\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=542784, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970ad000
mmap(0x3419800000, 2635816, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3419800000
mprotect(0x341987a000, 2093056, PROT_NONE) = 0
mmap(0x3419a79000, 45056, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x79000) = 0x3419a79000
close(3) = 0
open("/usr/lib64/libgcrypt.so.11", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0k\300\0224\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=465480, ...}) = 0
mmap(0x3412c00000, 2559584, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3412c00000
mprotect(0x3412c6e000, 2093056, PROT_NONE) = 0
mmap(0x3412e6d000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x3412e6d000
close(3) = 0
open("/usr/lib64/libgpg-error.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\7\0\0234\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=15208, ...}) = 0
mmap(0x3413000000, 2108192, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3413000000
mprotect(0x3413003000, 2093056, PROT_NONE) = 0
mmap(0x3413202000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3413202000
close(3) = 0
open("/lib64/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0
\"\200\0214\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=53472, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970ae000
mmap(0x3411800000, 2132936, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3411800000
mprotect(0x3411807000, 2097152, PROT_NONE) = 0
mmap(0x3411a07000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x3411a07000
close(3) = 0
open("/lib64/libutil.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\16\0\0274\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18168, ...}) = 0
mmap(0x3417000000, 2105616, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3417000000
mprotect(0x3417002000, 2093056, PROT_NONE) = 0
mmap(0x3417201000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3417201000
close(3) = 0
open("/usr/lib64/libSDL-1.2.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\244\300\0314\0\0\0"...
, 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=460376, ...}) = 0
mmap(0x3419c00000, 2739960, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3419c00000
mprotect(0x3419c6d000, 2097152, PROT_NONE) = 0
mmap(0x3419e6d000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x3419e6d000
mmap(0x3419e70000, 184056, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3419e70000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\332\301\0174\0\0\0".
..,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1722304, ...}) = 0
mmap(0x340fc00000, 3502424, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x340fc00000
mprotect(0x340fd4e000, 2097152, PROT_NONE) = 0
mmap(0x340ff4e000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14e000) = 0x340ff4e000
mmap(0x340ff53000, 16728, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x340ff53000
close(3) = 0
open("/usr/lib64/libGL.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\304\201\0324\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=492720, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970af000
mmap(0x341a800000, 2595592, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341a800000
mprotect(0x341a86e000, 2097152, PROT_NONE) = 0
mmap(0x341aa6e000, 40960, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6e000) = 0x341aa6e000
mmap(0x341aa78000, 6920, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x341aa78000
close(3) = 0
open("/usr/lib64/libGLU.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240k\301\0324\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=525752, ...}) = 0
mmap(0x341ac00000, 2618200, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341ac00000
mprotect(0x341ac7e000, 2097152, PROT_NONE) = 0
mmap(0x341ae7e000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7e000) = 0x341ae7e000
close(3) = 0
open("/usr/lib64/libstdc++.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\363\204\0234\0\0\0".
..,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=972216, ...}) = 0
mmap(0x3413800000, 3141504, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3413800000
mprotect(0x34138e4000, 2097152, PROT_NONE) = 0
mmap(0x3413ae4000, 36864, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe4000) = 0x3413ae4000
mmap(0x3413aed000, 73600, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3413aed000
close(3) = 0
open("/lib64/libgcc_s.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\35\0\0244\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=56832, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b0000
mmap(0x3414000000, 2150216, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3414000000
mprotect(0x341400d000, 2093056, PROT_NONE) = 0
mmap(0x341420c000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x341420c000
close(3) = 0
open("/usr/lib64/libqpixman-1.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240J\300\0334\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=278736, ...}) = 0
mmap(0x341bc00000, 2372000, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341bc00000
mprotect(0x341bc41000, 2097152, PROT_NONE) = 0
mmap(0x341be41000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x41000) = 0x341be41000
close(3) = 0
open("/usr/lib64/libfreetype.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\273\0\0264\0\0\0"...
, 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=527504, ...}) = 0
mmap(0x3416000000, 2620464, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3416000000
mprotect(0x341607b000, 2097152, PROT_NONE) = 0
mmap(0x341627b000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7b000) = 0x341627b000
close(3) = 0
open("/usr/lib64/libfontconfig.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\226\0\0224\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=212920, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b1000
mmap(0x3412000000, 2306792, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3412000000
mprotect(0x3412029000, 2097152, PROT_NONE) = 0
mmap(0x3412229000, 40960, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x29000) = 0x3412229000
mmap(0x3412233000, 744, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3412233000
close(3) = 0
open("/usr/lib64/libXrender.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\30\0\0304\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38528, ...}) = 0
mmap(0x3418000000, 2131416, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3418000000
mprotect(0x3418009000, 2093056, PROT_NONE) = 0
mmap(0x3418208000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x3418208000
close(3) = 0
open("/usr/lib64/libX11.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\376\301\0274\0\0\0".
..,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1095440, ...}) = 0
mmap(0x3417c00000, 3190504, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3417c00000
mprotect(0x3417d04000, 2097152, PROT_NONE) = 0
mmap(0x3417f04000, 28672, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x104000) = 0x3417f04000
close(3) = 0
open("/usr/lib64/libgssapi_krb5.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\221\200\0264\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=188512, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b2000
mmap(0x3416800000, 2281424, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3416800000
mprotect(0x341682c000, 2093056, PROT_NONE) = 0
mmap(0x3416a2b000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2b000) = 0x3416a2b000
close(3) = 0
open("/usr/lib64/libkrb5.so.3", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\220\301\0254\0\0\0"..
.,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=613864, ...}) = 0
mmap(0x3415c00000, 2706592, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3415c00000
mprotect(0x3415c91000, 2097152, PROT_NONE) = 0
mmap(0x3415e91000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x91000) = 0x3415e91000
close(3) = 0
open("/lib64/libcom_err.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\n\200\0244\0\0\0"...
, 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10048, ...}) = 0
mmap(0x3414800000, 2103096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3414800000
mprotect(0x3414802000, 2093056, PROT_NONE) = 0
mmap(0x3414a01000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3414a01000
close(3) = 0
open("/usr/lib64/libk5crypto.so.3", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320U\0\0254\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=153112, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b3000
mmap(0x3415000000, 2246920, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3415000000
mprotect(0x3415023000, 2097152, PROT_NONE) = 0
mmap(0x3415223000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x3415223000
close(3) = 0
open("/lib64/libresolv.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2402\300\0214\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92752, ...}) = 0
mmap(0x3411c00000, 2181864, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3411c00000
mprotect(0x3411c11000, 2097152, PROT_NONE) = 0
mmap(0x3411e11000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x3411e11000
mmap(0x3411e13000, 6888, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3411e13000
close(3) = 0
open("/usr/lib64/libXext.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3003@\0304\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=72424, ...}) = 0
mmap(0x3418400000, 2165888, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3418400000
mprotect(0x3418410000, 2097152, PROT_NONE) = 0
mmap(0x3418610000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x3418610000
close(3) = 0
open("/usr/lib64/libesd.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0
5\200\0274\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=44992, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b4000
mmap(0x3417800000, 2137856, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3417800000
mprotect(0x3417809000, 2097152, PROT_NONE) = 0
mmap(0x3417a09000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x3417a09000
close(3) = 0
open("/usr/lib64/libaudiofile.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\230@\0264\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=177136, ...}) = 0
mmap(0x3416400000, 2270088, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3416400000
mprotect(0x3416428000, 2093056, PROT_NONE) = 0
mmap(0x3416627000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0x3416627000
close(3) = 0
open("/usr/lib64/libXxf86vm.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r@\0334\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=21648, ...}) = 0
mmap(0x341b400000, 2114504, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341b400000
mprotect(0x341b405000, 2093056, PROT_NONE) = 0
mmap(0x341b604000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x341b604000
close(3) = 0
open("/usr/lib64/libdrm.so.2", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p#@\0344\0\0\0"..., 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=33792, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b5000
mmap(0x341c400000, 2128880, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x341c400000
mprotect(0x341c407000, 2097152, PROT_NONE) = 0
mmap(0x341c607000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x341c607000
close(3) = 0
open("/lib64/libexpat.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@:@\0254\0\0\0"..., 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=143400, ...}) = 0
mmap(0x3415400000, 2236392, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3415400000
mprotect(0x3415420000, 2097152, PROT_NONE) = 0
mmap(0x3415620000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0x3415620000
close(3) = 0
open("/usr/lib64/libXau.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\f\0\0314\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=12040, ...}) = 0
mmap(0x3419000000, 2105040, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3419000000
mprotect(0x3419002000, 2093056, PROT_NONE) = 0
mmap(0x3419201000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3419201000
close(3) = 0
open("/usr/lib64/libXdmcp.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\22\200\0304\0\0\0"..
.,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=22032, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b6000
mmap(0x3418800000, 2115016, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3418800000
mprotect(0x3418805000, 2093056, PROT_NONE) = 0
mmap(0x3418a04000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x3418a04000
close(3) = 0
open("/usr/lib64/libkrb5support.so.0", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\"\300\0244\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=35504, ...}) = 0
mmap(0x3414c00000, 2128368, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3414c00000
mprotect(0x3414c08000, 2093056, PROT_NONE) = 0
mmap(0x3414e07000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x3414e07000
close(3) = 0
open("/lib64/libkeyutils.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\n\200\0254\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=9472, ...}) = 0
mmap(0x3415800000, 2102416, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3415800000
mprotect(0x3415802000, 2093056, PROT_NONE) = 0
mmap(0x3415a01000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3415a01000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b7000
open("/lib64/libselinux.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300D@\0214\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=91352, ...}) = 0
mmap(0x3411400000, 2188704, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3411400000
mprotect(0x3411415000, 2093056, PROT_NONE) = 0
mmap(0x3411614000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x3411614000
mmap(0x3411616000, 1440, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3411616000
close(3) = 0
open("/lib64/libsepol.so.1", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@<\0\0214\0\0\0"..., 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=243400, ...}) = 0
mmap(0x3411000000, 2379072, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3411000000
mprotect(0x341103a000, 2097152, PROT_NONE) = 0
mmap(0x341123a000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a000) = 0x341123a000
mmap(0x341123b000, 40256, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x341123b000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970b9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970ba000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970bb000
arch_prctl(ARCH_SET_FS, 0x2b46970bad80) = 0
mprotect(0x3410681000, 4096, PROT_READ) = 0
mprotect(0x3412614000, 4096, PROT_READ) = 0
mprotect(0x3410a15000, 4096, PROT_READ) = 0
mprotect(0x3410202000, 4096, PROT_READ) = 0
mprotect(0x3411a07000, 4096, PROT_READ) = 0
mprotect(0x3417201000, 4096, PROT_READ) = 0
mprotect(0x340ff4e000, 16384, PROT_READ) = 0
mprotect(0x3413ae4000, 24576, PROT_READ) = 0
mprotect(0x3411e11000, 4096, PROT_READ) = 0
mprotect(0x340fa1b000, 4096, PROT_READ) = 0
munmap(0x2b46970a0000, 29122) = 0
set_tid_address(0x2b46970bae10) = 21034
set_robust_list(0x2b46970bae20, 0x18) = 0
futex(0x7fff6d5972dc, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0x3410805380, [], SA_RESTORER|SA_SIGINFO,
0x341080eb10}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x34108052b0, [],
SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x341080eb10}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) =
0
brk(0) = 0x196b8000
brk(0x196d9000) = 0x196d9000
access("/etc/selinux/", F_OK) = 0
open("/etc/selinux/config", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970a0000
read(3, "# This file controls the state o"..., 4096) = 513
read(3, "", 4096) = 0
close(3) = 0
munmap(0x2b46970a0000, 4096) = 0
open("/proc/mounts", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x2b46970a0000
read(3, "rootfs / rootfs rw 0 0\n/dev/root"..., 4096) = 731
close(3) = 0
munmap(0x2b46970a0000, 4096) = 0
open("/selinux/mls", O_RDONLY) = 3
read(3, "1", 19) = 1
close(3) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 3
connect(3, {sa_family=AF_FILE,
path="/var/run/setrans/.setrans-unix"...}, 110) = 0
sendmsg(3, {msg_name(0)=NULL, msg_iov(5)=[{"\1\0\0\0", 4}, {"\1\0\0\0",
4}, {"\1\0\0\0", 4}, {"\0", 1}, {"\0", 1}], msg_controllen=0,
msg_flags=0}, MSG_NOSIGNAL) = 14
readv(3, [{"\1\0\0\0", 4}, {"\1\0\0\0", 4}, {"\0\0\0\0", 4}], 3) = 12
readv(3, [{"\0", 1}], 1) = 1
close(3) = 0
futex(0x3413aeeca8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGPIPE, {0x1, ~[RTMIN RT_1], SA_RESTORER, 0x341080eb10},
NULL, 8) = 0
rt_sigaction(SIGIO, {0x407440, ~[RTMIN RT_1], SA_RESTORER,
0x341080eb10}, NULL, 8) = 0
open("/dev/kvm", O_RDWR) = 3
ioctl(3, 0xae00, 0) = 12
clock_gettime(CLOCK_MONOTONIC, {985079, 528777824}) = 0
pipe([4, 5]) = 0
fcntl(4, F_GETFL) = 0 (flags O_RDONLY)
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
fcntl(5, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl(5, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
rt_sigaction(SIGALRM, {0x407460, ~[RTMIN RT_1], SA_RESTORER,
0x341080eb10}, NULL, 8) = 0
timer_create(CLOCK_REALTIME, {(nil), SIGALRM, SIGEV_SIGNAL, {...}},
{0x7ac26000000000}) = 0
fcntl(17, F_SETFL, O_RDONLY|O_NONBLOCK) = -1 EBADF (Bad file descriptor)
ioctl(17, 0x800454d2, 0x7fff6d595b70) = -1 EBADF (Bad file descriptor)
write(2, "TUNGETIFF ioctl() failed: Bad fi"..., 46TUNGETIFF ioctl()
failed: Bad file descriptor
) = 46
ioctl(17, 0x400454d4, 0x7fff6d595c68) = -1 EBADF (Bad file descriptor)
write(2, "TUNSETSNDBUF ioctl failed: Bad f"..., 47TUNSETSNDBUF ioctl
failed: Bad file descriptor
) = 47
ioctl(3, 0xae01, 0) = 6
ioctl(3, 0xae03, 0x4) = 1
ioctl(3, 0xae03, 0x4) = 1
ioctl(6, 0xae47, 0xfffbd000) = 0
ioctl(3, 0xae03, 0xb) = 1
ioctl(6, 0xae64, 0xb) = 0
ioctl(3, 0xae03, 0xf) = 2
ioctl(3, 0xae03, 0x3) = 1
ioctl(3, 0xae03, 0) = 1
ioctl(6, 0xae60, 0) = 0
ioctl(3, 0xae03, 0x1a) = 1
uname({sys="Linux", node="lxbst0501.cern.ch", ...}) = 0
ioctl(3, 0xc004ae02, 0x7fff6d595b10) = -1 E2BIG (Argument list too
long)
ioctl(3, 0xc004ae02, 0x196ca0e0) = 0
ioctl(3, 0xae03, 0x27) = 1
ioctl(3, 0xae03, 0x18) = 1
ioctl(6, 0xae71, 0x7fff6d595ca0) = 0
ioctl(3, 0xae03, 0x15) = 1
ioctl(3, 0xae03, 0x19) = 1024
ioctl(6, 0x4008ae6a, 0x196ca120) = 0
mmap(NULL, 2168475648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = -1 ENOMEM (Cannot allocate memory)
brk(0x9aaef000) = 0x196d9000
mmap(NULL, 2168606720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = -1 ENOMEM (Cannot allocate memory)
mmap(NULL, 2168475648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = -1 ENOMEM (Cannot allocate memory)
brk(0x9aaef000) = 0x196d9000
mmap(NULL, 2168606720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = -1 ENOMEM (Cannot allocate memory)
ioctl(3, 0xae03, 0x10) = 1
write(2, "Could not allocate physical memo"..., 35Could not allocate
physical memory
) = 35
exit_group(1) = ?
Any comments?
Thanks,
Guangya Liu
Software Developer@platform Computing
13 years, 6 months