All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCHv3 0.14] vhost: force vhost off for non-MSI guests
From: Michael S. Tsirkin, Alex Williamson @ 2011-02-01 20:13 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: kvm, Juan Quintela, Jes.Sorensen, jasowang, qemu-devel

When MSI is off, each interrupt needs to be bounced through the io
thread when it's set/cleared, so vhost-net causes more context switches and
higher CPU utilization than userspace virtio which handles networking in
the same thread.

We'll need to fix this by adding level irq support in kvm irqfd,
for now disable vhost-net in these configurations.

Added a vhostforce flag to force vhost-net back on.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---

OK this is 0.14 material so quick review would be appreciated.
This version's compiled only, I'll naturally test more before I
queue it.

Changes from v2:
	get rid of EVIRTIO, add a separate API to query
	for fast guest notifiers

Changes from v1:
	add vhostforce flag

 hw/vhost.c      |   10 +++++++++-
 hw/vhost.h      |    4 +++-
 hw/vhost_net.c  |   24 ++++++++++++++++++------
 hw/vhost_net.h  |    3 ++-
 hw/virtio-net.c |    6 +++++-
 hw/virtio-pci.c |    7 +++++++
 hw/virtio.h     |    1 +
 net/tap.c       |    6 ++++--
 qemu-options.hx |    4 +++-
 9 files changed, 52 insertions(+), 13 deletions(-)

diff --git a/hw/vhost.c b/hw/vhost.c
index 6082da2..38cc3b3 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -581,7 +581,7 @@ static void vhost_virtqueue_cleanup(struct vhost_dev *dev,
                               0, virtio_queue_get_desc_size(vdev, idx));
 }
 
-int vhost_dev_init(struct vhost_dev *hdev, int devfd)
+int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force)
 {
     uint64_t features;
     int r;
@@ -613,6 +613,7 @@ int vhost_dev_init(struct vhost_dev *hdev, int devfd)
     hdev->log_enabled = false;
     hdev->started = false;
     cpu_register_phys_memory_client(&hdev->client);
+    hdev->force = force;
     return 0;
 fail:
     r = -errno;
@@ -627,6 +628,13 @@ void vhost_dev_cleanup(struct vhost_dev *hdev)
     close(hdev->control);
 }
 
+bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev)
+{
+    return !vdev->binding->query_guest_notifiers ||
+        vdev->binding->query_guest_notifiers(vdev->binding_opaque) ||
+        hdev->force;
+}
+
 int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev)
 {
     int i, r;
diff --git a/hw/vhost.h b/hw/vhost.h
index 86dd834..c8c595a 100644
--- a/hw/vhost.h
+++ b/hw/vhost.h
@@ -38,10 +38,12 @@ struct vhost_dev {
     bool log_enabled;
     vhost_log_chunk_t *log;
     unsigned long long log_size;
+    bool force;
 };
 
-int vhost_dev_init(struct vhost_dev *hdev, int devfd);
+int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force);
 void vhost_dev_cleanup(struct vhost_dev *hdev);
+bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev);
 int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev);
 void vhost_dev_stop(struct vhost_dev *hdev, VirtIODevice *vdev);
 
diff --git a/hw/vhost_net.c b/hw/vhost_net.c
index c068be1..420e05f 100644
--- a/hw/vhost_net.c
+++ b/hw/vhost_net.c
@@ -81,7 +81,8 @@ static int vhost_net_get_fd(VLANClientState *backend)
     }
 }
 
-struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd)
+struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd,
+                                 bool force)
 {
     int r;
     struct vhost_net *net = qemu_malloc(sizeof *net);
@@ -98,7 +99,7 @@ struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd)
         (1 << VHOST_NET_F_VIRTIO_NET_HDR);
     net->backend = r;
 
-    r = vhost_dev_init(&net->dev, devfd);
+    r = vhost_dev_init(&net->dev, devfd, force);
     if (r < 0) {
         goto fail;
     }
@@ -121,6 +122,11 @@ fail:
     return NULL;
 }
 
+bool vhost_net_query(VHostNetState *net, VirtIODevice *dev)
+{
+    return vhost_dev_query(&net->dev, dev);
+}
+
 int vhost_net_start(struct vhost_net *net,
                     VirtIODevice *dev)
 {
@@ -188,15 +194,21 @@ void vhost_net_cleanup(struct vhost_net *net)
     qemu_free(net);
 }
 #else
-struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd)
+struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd,
+                                 bool force)
+{
+    return NULL;
+}
+
+bool vhost_net_query(VHostNetState *net, VirtIODevice *dev)
 {
-	return NULL;
+    return false;
 }
 
 int vhost_net_start(struct vhost_net *net,
 		    VirtIODevice *dev)
 {
-	return -ENOSYS;
+    return -ENOSYS;
 }
 void vhost_net_stop(struct vhost_net *net,
 		    VirtIODevice *dev)
@@ -209,7 +221,7 @@ void vhost_net_cleanup(struct vhost_net *net)
 
 unsigned vhost_net_get_features(struct vhost_net *net, unsigned features)
 {
-	return features;
+    return features;
 }
 void vhost_net_ack_features(struct vhost_net *net, unsigned features)
 {
diff --git a/hw/vhost_net.h b/hw/vhost_net.h
index 6c18ff7..91e40b1 100644
--- a/hw/vhost_net.h
+++ b/hw/vhost_net.h
@@ -6,8 +6,9 @@
 struct vhost_net;
 typedef struct vhost_net VHostNetState;
 
-VHostNetState *vhost_net_init(VLANClientState *backend, int devfd);
+VHostNetState *vhost_net_init(VLANClientState *backend, int devfd, bool force);
 
+bool vhost_net_query(VHostNetState *net, VirtIODevice *dev);
 int vhost_net_start(VHostNetState *net, VirtIODevice *dev);
 void vhost_net_stop(VHostNetState *net, VirtIODevice *dev);
 
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index ccb3e63..16ac103 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -119,7 +119,11 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t status)
         return;
     }
     if (!n->vhost_started) {
-        int r = vhost_net_start(tap_get_vhost_net(n->nic->nc.peer), &n->vdev);
+        int r;
+        if (!vhost_net_query(tap_get_vhost_net(n->nic->nc.peer), &n->vdev)) {
+            return;
+        }
+        r = vhost_net_start(tap_get_vhost_net(n->nic->nc.peer), &n->vdev);
         if (r < 0) {
             error_report("unable to start vhost net: %d: "
                          "falling back on userspace virtio", -r);
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index d07ff97..3911b09 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -595,6 +595,12 @@ static int virtio_pci_set_guest_notifier(void *opaque, int n, bool assign)
     return 0;
 }
 
+static bool virtio_pci_query_guest_notifiers(void *opaque)
+{
+    VirtIOPCIProxy *proxy = opaque;
+    return msix_enabled(&proxy->pci_dev);
+}
+
 static int virtio_pci_set_guest_notifiers(void *opaque, bool assign)
 {
     VirtIOPCIProxy *proxy = opaque;
@@ -658,6 +664,7 @@ static const VirtIOBindings virtio_pci_bindings = {
     .save_queue = virtio_pci_save_queue,
     .load_queue = virtio_pci_load_queue,
     .get_features = virtio_pci_get_features,
+    .query_guest_notifiers = virtio_pci_query_guest_notifiers,
     .set_host_notifier = virtio_pci_set_host_notifier,
     .set_guest_notifiers = virtio_pci_set_guest_notifiers,
     .vmstate_change = virtio_pci_vmstate_change,
diff --git a/hw/virtio.h b/hw/virtio.h
index d8546d5..31d16e1 100644
--- a/hw/virtio.h
+++ b/hw/virtio.h
@@ -93,6 +93,7 @@ typedef struct {
     int (*load_config)(void * opaque, QEMUFile *f);
     int (*load_queue)(void * opaque, int n, QEMUFile *f);
     unsigned (*get_features)(void * opaque);
+    bool (*query_guest_notifiers)(void * opaque);
     int (*set_guest_notifiers)(void * opaque, bool assigned);
     int (*set_host_notifier)(void * opaque, int n, bool assigned);
     void (*vmstate_change)(void * opaque, bool running);
diff --git a/net/tap.c b/net/tap.c
index eada34a..b8cd252 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -491,8 +491,10 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan
         }
     }
 
-    if (qemu_opt_get_bool(opts, "vhost", !!qemu_opt_get(opts, "vhostfd"))) {
+    if (qemu_opt_get_bool(opts, "vhost", !!qemu_opt_get(opts, "vhostfd") ||
+                          qemu_opt_get_bool(opts, "vhostforce", false))) {
         int vhostfd, r;
+        bool force = qemu_opt_get_bool(opts, "vhostforce", false);
         if (qemu_opt_get(opts, "vhostfd")) {
             r = net_handle_fd_param(mon, qemu_opt_get(opts, "vhostfd"));
             if (r == -1) {
@@ -502,7 +504,7 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan
         } else {
             vhostfd = -1;
         }
-        s->vhost_net = vhost_net_init(&s->nc, vhostfd);
+        s->vhost_net = vhost_net_init(&s->nc, vhostfd, force);
         if (!s->vhost_net) {
             error_report("vhost-net requested but could not be initialized");
             return -1;
diff --git a/qemu-options.hx b/qemu-options.hx
index 898561d..11c93a2 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1050,7 +1050,7 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
     "-net tap[,vlan=n][,name=str],ifname=name\n"
     "                connect the host TAP network interface to VLAN 'n'\n"
 #else
-    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h]\n"
+    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]\n"
     "                connect the host TAP network interface to VLAN 'n' and use the\n"
     "                network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
     "                and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
@@ -1061,6 +1061,8 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
     "                use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag\n"
     "                use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
     "                use vhost=on to enable experimental in kernel accelerator\n"
+    "                    (only has effect for virtio guests which use MSIX)\n"
+    "                use vhostforce=on to force vhost on for non-MSIX virtio guests\n"
     "                use 'vhostfd=h' to connect to an already opened vhost net device\n"
 #endif
     "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
-- 
1.7.3.2.91.g446ac

^ permalink raw reply related

* Re: User space RAID-6 access
From: John Robinson @ 2011-02-01 20:14 UTC (permalink / raw)
  To: Piergiorgio Sartor; +Cc: NeilBrown, linux-raid
In-Reply-To: <20110201192154.GA2696@lazy.lzy>

On 01/02/2011 19:21, Piergiorgio Sartor wrote:
> On Tue, Feb 01, 2011 at 07:52:59AM +1100, NeilBrown wrote:
>> On Mon, 31 Jan 2011 21:20:55 +0100 Piergiorgio Sartor
>> <piergiorgio.sartor@nexgo.de>  wrote:
>>
>>> Hi all,
>>>
>>> some times ago, I think was Neil, it was mentioned
>>> about the possibility to access consistently a RAID-6
>>> array from user space, in order to be able to perform
>>> some checks, like the notorius "which HDD has wrong data".
>>>
>>> Is there any reference or documentation or source code
>>> which can be taken as example for such a case?
>>>
>>
>> Look in the mdadm source code, particularly at restripe.c
>>
>> Also
>>     make test_stripe
>>
>> make a program the the test suite uses for verify data correctness.
>>
>> That should give you enough hints to get you started.
>
>
> Hi Neil, thanks for the pointer.
>
> I had a look at the code and there is something I did not get.
>
> It seems to me the HDDs composing the array are "simply"
> opened with "open".
>
> In case the array is in use, how is avoided a race condition
> between the "test_stripe" program and the md device?
>
> I mean, the first could start to read from the HDDs and the
> other could write something in the same place, leading to an
> inconsistent parity, from the "test_stripe" point of view,
> since it missed some update.
>
> Or there is a locking inside md (in "test_stripe" I could
> not see and it would also be dangerous)?

Look at Grow.c and suspend_lo and suspend_hi.

Just my €$£0.005, I may be wrong, etc.

Cheers,

John.

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 1/2] security/selinux: fix /proc/sys/ labeling
From: Eric W. Biederman @ 2011-02-01 20:14 UTC (permalink / raw)
  To: Lucian Adrian Grijincu
  Cc: Stephen Smalley, James Morris, Eric Paris, linux-kernel,
	linux-security-module
In-Reply-To: <AANLkTik+N5J-MDrbMbtwRPwz==J4y8sbBkhir=1K3g=B@mail.gmail.com>

Lucian Adrian Grijincu <lucian.grijincu@gmail.com> writes:

> On Tue, Feb 1, 2011 at 9:33 PM, Eric W. Biederman <ebiederm@xmission.com> wrote:
>> What kernel has a dentry_path_raw?  Perhaps you mean __dentry_path?
>
>
> See the function here:
> https://github.com/mirrors/linux-2.6/blob/70d1f365568e0cdbc9f4ab92428e1830fdb09ab0/fs/dcache.c
>
> The last patches were against 2.6.38-rc2 because the dcache layer got
> rewritten in 2.6.38 http://lwn.net/Articles/421784/
>
> __dentry_path is now static (in fs/dcache.c) and does not take the
> necessary locks.

Thanks.  I thought I was looking at the latest source but it turns out
I fat fingered something and my tree was still 2.6.36-rc3.  Sigh.

dentry_path_raw does seem reasonable.

Eric

^ permalink raw reply

* [PATCHv3 0.14] vhost: force vhost off for non-MSI guests
From: Michael S. Tsirkin, Alex Williamson @ 2011-02-01 20:13 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Anthony Liguori, kvm, Juan Quintela, Jes.Sorensen, jasowang,
	qemu-devel

When MSI is off, each interrupt needs to be bounced through the io
thread when it's set/cleared, so vhost-net causes more context switches and
higher CPU utilization than userspace virtio which handles networking in
the same thread.

We'll need to fix this by adding level irq support in kvm irqfd,
for now disable vhost-net in these configurations.

Added a vhostforce flag to force vhost-net back on.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---

OK this is 0.14 material so quick review would be appreciated.
This version's compiled only, I'll naturally test more before I
queue it.

Changes from v2:
	get rid of EVIRTIO, add a separate API to query
	for fast guest notifiers

Changes from v1:
	add vhostforce flag

 hw/vhost.c      |   10 +++++++++-
 hw/vhost.h      |    4 +++-
 hw/vhost_net.c  |   24 ++++++++++++++++++------
 hw/vhost_net.h  |    3 ++-
 hw/virtio-net.c |    6 +++++-
 hw/virtio-pci.c |    7 +++++++
 hw/virtio.h     |    1 +
 net/tap.c       |    6 ++++--
 qemu-options.hx |    4 +++-
 9 files changed, 52 insertions(+), 13 deletions(-)

diff --git a/hw/vhost.c b/hw/vhost.c
index 6082da2..38cc3b3 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -581,7 +581,7 @@ static void vhost_virtqueue_cleanup(struct vhost_dev *dev,
                               0, virtio_queue_get_desc_size(vdev, idx));
 }
 
-int vhost_dev_init(struct vhost_dev *hdev, int devfd)
+int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force)
 {
     uint64_t features;
     int r;
@@ -613,6 +613,7 @@ int vhost_dev_init(struct vhost_dev *hdev, int devfd)
     hdev->log_enabled = false;
     hdev->started = false;
     cpu_register_phys_memory_client(&hdev->client);
+    hdev->force = force;
     return 0;
 fail:
     r = -errno;
@@ -627,6 +628,13 @@ void vhost_dev_cleanup(struct vhost_dev *hdev)
     close(hdev->control);
 }
 
+bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev)
+{
+    return !vdev->binding->query_guest_notifiers ||
+        vdev->binding->query_guest_notifiers(vdev->binding_opaque) ||
+        hdev->force;
+}
+
 int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev)
 {
     int i, r;
diff --git a/hw/vhost.h b/hw/vhost.h
index 86dd834..c8c595a 100644
--- a/hw/vhost.h
+++ b/hw/vhost.h
@@ -38,10 +38,12 @@ struct vhost_dev {
     bool log_enabled;
     vhost_log_chunk_t *log;
     unsigned long long log_size;
+    bool force;
 };
 
-int vhost_dev_init(struct vhost_dev *hdev, int devfd);
+int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force);
 void vhost_dev_cleanup(struct vhost_dev *hdev);
+bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev);
 int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev);
 void vhost_dev_stop(struct vhost_dev *hdev, VirtIODevice *vdev);
 
diff --git a/hw/vhost_net.c b/hw/vhost_net.c
index c068be1..420e05f 100644
--- a/hw/vhost_net.c
+++ b/hw/vhost_net.c
@@ -81,7 +81,8 @@ static int vhost_net_get_fd(VLANClientState *backend)
     }
 }
 
-struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd)
+struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd,
+                                 bool force)
 {
     int r;
     struct vhost_net *net = qemu_malloc(sizeof *net);
@@ -98,7 +99,7 @@ struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd)
         (1 << VHOST_NET_F_VIRTIO_NET_HDR);
     net->backend = r;
 
-    r = vhost_dev_init(&net->dev, devfd);
+    r = vhost_dev_init(&net->dev, devfd, force);
     if (r < 0) {
         goto fail;
     }
@@ -121,6 +122,11 @@ fail:
     return NULL;
 }
 
+bool vhost_net_query(VHostNetState *net, VirtIODevice *dev)
+{
+    return vhost_dev_query(&net->dev, dev);
+}
+
 int vhost_net_start(struct vhost_net *net,
                     VirtIODevice *dev)
 {
@@ -188,15 +194,21 @@ void vhost_net_cleanup(struct vhost_net *net)
     qemu_free(net);
 }
 #else
-struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd)
+struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd,
+                                 bool force)
+{
+    return NULL;
+}
+
+bool vhost_net_query(VHostNetState *net, VirtIODevice *dev)
 {
-	return NULL;
+    return false;
 }
 
 int vhost_net_start(struct vhost_net *net,
 		    VirtIODevice *dev)
 {
-	return -ENOSYS;
+    return -ENOSYS;
 }
 void vhost_net_stop(struct vhost_net *net,
 		    VirtIODevice *dev)
@@ -209,7 +221,7 @@ void vhost_net_cleanup(struct vhost_net *net)
 
 unsigned vhost_net_get_features(struct vhost_net *net, unsigned features)
 {
-	return features;
+    return features;
 }
 void vhost_net_ack_features(struct vhost_net *net, unsigned features)
 {
diff --git a/hw/vhost_net.h b/hw/vhost_net.h
index 6c18ff7..91e40b1 100644
--- a/hw/vhost_net.h
+++ b/hw/vhost_net.h
@@ -6,8 +6,9 @@
 struct vhost_net;
 typedef struct vhost_net VHostNetState;
 
-VHostNetState *vhost_net_init(VLANClientState *backend, int devfd);
+VHostNetState *vhost_net_init(VLANClientState *backend, int devfd, bool force);
 
+bool vhost_net_query(VHostNetState *net, VirtIODevice *dev);
 int vhost_net_start(VHostNetState *net, VirtIODevice *dev);
 void vhost_net_stop(VHostNetState *net, VirtIODevice *dev);
 
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index ccb3e63..16ac103 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -119,7 +119,11 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t status)
         return;
     }
     if (!n->vhost_started) {
-        int r = vhost_net_start(tap_get_vhost_net(n->nic->nc.peer), &n->vdev);
+        int r;
+        if (!vhost_net_query(tap_get_vhost_net(n->nic->nc.peer), &n->vdev)) {
+            return;
+        }
+        r = vhost_net_start(tap_get_vhost_net(n->nic->nc.peer), &n->vdev);
         if (r < 0) {
             error_report("unable to start vhost net: %d: "
                          "falling back on userspace virtio", -r);
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index d07ff97..3911b09 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -595,6 +595,12 @@ static int virtio_pci_set_guest_notifier(void *opaque, int n, bool assign)
     return 0;
 }
 
+static bool virtio_pci_query_guest_notifiers(void *opaque)
+{
+    VirtIOPCIProxy *proxy = opaque;
+    return msix_enabled(&proxy->pci_dev);
+}
+
 static int virtio_pci_set_guest_notifiers(void *opaque, bool assign)
 {
     VirtIOPCIProxy *proxy = opaque;
@@ -658,6 +664,7 @@ static const VirtIOBindings virtio_pci_bindings = {
     .save_queue = virtio_pci_save_queue,
     .load_queue = virtio_pci_load_queue,
     .get_features = virtio_pci_get_features,
+    .query_guest_notifiers = virtio_pci_query_guest_notifiers,
     .set_host_notifier = virtio_pci_set_host_notifier,
     .set_guest_notifiers = virtio_pci_set_guest_notifiers,
     .vmstate_change = virtio_pci_vmstate_change,
diff --git a/hw/virtio.h b/hw/virtio.h
index d8546d5..31d16e1 100644
--- a/hw/virtio.h
+++ b/hw/virtio.h
@@ -93,6 +93,7 @@ typedef struct {
     int (*load_config)(void * opaque, QEMUFile *f);
     int (*load_queue)(void * opaque, int n, QEMUFile *f);
     unsigned (*get_features)(void * opaque);
+    bool (*query_guest_notifiers)(void * opaque);
     int (*set_guest_notifiers)(void * opaque, bool assigned);
     int (*set_host_notifier)(void * opaque, int n, bool assigned);
     void (*vmstate_change)(void * opaque, bool running);
diff --git a/net/tap.c b/net/tap.c
index eada34a..b8cd252 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -491,8 +491,10 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan
         }
     }
 
-    if (qemu_opt_get_bool(opts, "vhost", !!qemu_opt_get(opts, "vhostfd"))) {
+    if (qemu_opt_get_bool(opts, "vhost", !!qemu_opt_get(opts, "vhostfd") ||
+                          qemu_opt_get_bool(opts, "vhostforce", false))) {
         int vhostfd, r;
+        bool force = qemu_opt_get_bool(opts, "vhostforce", false);
         if (qemu_opt_get(opts, "vhostfd")) {
             r = net_handle_fd_param(mon, qemu_opt_get(opts, "vhostfd"));
             if (r == -1) {
@@ -502,7 +504,7 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan
         } else {
             vhostfd = -1;
         }
-        s->vhost_net = vhost_net_init(&s->nc, vhostfd);
+        s->vhost_net = vhost_net_init(&s->nc, vhostfd, force);
         if (!s->vhost_net) {
             error_report("vhost-net requested but could not be initialized");
             return -1;
diff --git a/qemu-options.hx b/qemu-options.hx
index 898561d..11c93a2 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1050,7 +1050,7 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
     "-net tap[,vlan=n][,name=str],ifname=name\n"
     "                connect the host TAP network interface to VLAN 'n'\n"
 #else
-    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h]\n"
+    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]\n"
     "                connect the host TAP network interface to VLAN 'n' and use the\n"
     "                network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
     "                and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
@@ -1061,6 +1061,8 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
     "                use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag\n"
     "                use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
     "                use vhost=on to enable experimental in kernel accelerator\n"
+    "                    (only has effect for virtio guests which use MSIX)\n"
+    "                use vhostforce=on to force vhost on for non-MSIX virtio guests\n"
     "                use 'vhostfd=h' to connect to an already opened vhost net device\n"
 #endif
     "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
-- 
1.7.3.2.91.g446ac

^ permalink raw reply related

* Re: [1.8.0] reorganize the mess that the source tree has become
From: Jonathan Nieder @ 2011-02-01 11:14 UTC (permalink / raw)
  To: Thomas Rast; +Cc: Nicolas Pitre, Jeff King, Junio C Hamano, git
In-Reply-To: <201102011342.06910.trast@student.ethz.ch>

Thomas Rast wrote:

> In particular a prospective git hacker would not care whether
> something is a source file or a script (you seem to imply the
> opposite).  He would instead expect to find git-foo implemented in
> something named of that sort, so we could probably help him by mapping
> 
>   git-foo.sh      ->   git-foo.sh
>   builtin/bar.c   ->   git-bar.c
>   baz.c           ->   lib/baz.c

I agree.  This sets off my "time to resist change" alarms much
less than "git mv *.c *.sh src/", for what it's worth.

>   baz.o           ->   build/baz.o (or whatever, just elsewhere)
>   baz.gcov        ->   build/baz.gcov (ditto)

Maybe something like this to start?

-- 8< --
Subject: Makefile: basic support for separate build dir

 - python and perl machinery haven't been tweaked yet
 - requires good VPATH support
 - relies on COMPUTE_HEADER_DIRECTORIES to make the object file
   directories
 - does not support paths with spaces

Usage:

	mkdir output
	cd output
	echo COMPUTE_HEADER_DIRECTORIES=1 >config.mak
	make -f ../Makefile GIT_SRC=$(pwd)/../ -j2

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 Makefile            |   41 ++++++++++++++++++++++++++---------------
 generate-cmdlist.sh |    4 ++--
 perl/Makefile       |    2 +-
 3 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/Makefile b/Makefile
index 775ee83..b258a24 100644
--- a/Makefile
+++ b/Makefile
@@ -243,8 +243,18 @@ all::
 #
 # Define NATIVE_CRLF if your platform uses CRLF for line endings.
 
+# Absolute path to the toplevel of the git sources, with trailing /.
+# Leave empty for an in-place build.
+GIT_SRC =
+ifdef GIT_SRC
+	NO_PYTHON = YesPlease
+	NO_PERL_MAKEMAKER = YesPlease
+endif
+
+VPATH := $(if $(GIT_SRC),$(GIT_SRC),$(CURDIR))
+
 GIT-VERSION-FILE: FORCE
-	@$(SHELL_PATH) ./GIT-VERSION-GEN
+	@$(SHELL_PATH) $(GIT_SRC)/GIT-VERSION-GEN
 -include GIT-VERSION-FILE
 
 uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
@@ -305,6 +315,7 @@ lib = lib
 pathsep = :
 
 export prefix bindir sharedir sysconfdir gitwebdir
+export GIT_SRC
 
 CC = gcc
 AR = ar
@@ -333,7 +344,7 @@ SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
 # Those must not be GNU-specific; they are shared with perl/ which may
 # be built by a different compiler. (Note that this is an artifact now
 # but it still might be nice to keep that distinction.)
-BASIC_CFLAGS = -I.
+BASIC_CFLAGS = -I$(GIT_SRC). -I.
 BASIC_LDFLAGS =
 
 # Guard against environment variables
@@ -1562,7 +1573,7 @@ ifeq ($(PYTHON_PATH),)
 NO_PYTHON=NoThanks
 endif
 
-QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
+QUIET_SUBDIR0  = +$(MAKE) -C $(GIT_SRC)# no space before subdir
 QUIET_SUBDIR1  =
 
 ifneq ($(findstring $(MAKEFLAGS),w),w)
@@ -1582,7 +1593,7 @@ ifndef V
 	QUIET_GCOV     = @echo '   ' GCOV $@;
 	QUIET_SUBDIR0  = +@subdir=
 	QUIET_SUBDIR1  = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
-			 $(MAKE) $(PRINT_DIR) -C $$subdir
+			 $(MAKE) $(PRINT_DIR) -C $(GIT_SRC)$$subdir
 	export V
 	export QUIET_GEN
 	export QUIET_BUILT_IN
@@ -1696,10 +1707,10 @@ $(BUILT_INS): git$X
 	ln -s git$X $@ 2>/dev/null || \
 	cp git$X $@
 
-common-cmds.h: ./generate-cmdlist.sh command-list.txt
+common-cmds.h: generate-cmdlist.sh command-list.txt
 
 common-cmds.h: $(wildcard Documentation/git-*.txt)
-	$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
+	$(QUIET_GEN)$(GIT_SRC)./generate-cmdlist.sh > $@+ && mv $@+ $@
 
 define cmd_munge_script
 $(RM) $@ $@+ && \
@@ -1709,7 +1720,7 @@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
     -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
     -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
     -e $(BROKEN_PATH_FIX) \
-    $@.sh >$@+
+    $(GIT_SRC)$@.sh >$@+
 endef
 
 $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
@@ -1729,7 +1740,7 @@ perl/perl.mak: GIT-CFLAGS perl/Makefile perl/Makefile.PL
 
 $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
 	$(QUIET_GEN)$(RM) $@ $@+ && \
-	INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+	INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C $(GIT_SRC)perl -s --no-print-directory instlibdir` && \
 	sed -e '1{' \
 	    -e '	s|#!.*perl|#!$(PERL_PATH_SQ)|' \
 	    -e '	h' \
@@ -1738,7 +1749,7 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
 	    -e '	x' \
 	    -e '}' \
 	    -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
-	    $@.perl >$@+ && \
+	    $(GIT_SRC)$@.perl >$@+ && \
 	chmod +x $@+ && \
 	mv $@+ $@
 
@@ -1780,7 +1791,7 @@ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/static/gitweb.css gitweb/
 	    -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
 	    -e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \
 	    -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
-	    $@.sh > $@+ && \
+	    $(GIT_SRC)$@.sh > $@+ && \
 	chmod +x $@+ && \
 	mv $@+ $@
 else # NO_PERL
@@ -1788,7 +1799,7 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
 	$(QUIET_GEN)$(RM) $@ $@+ && \
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 	    -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
-	    unimplemented.sh >$@+ && \
+	    $(GIT_SRC)unimplemented.sh >$@+ && \
 	chmod +x $@+ && \
 	mv $@+ $@
 endif # NO_PERL
@@ -1803,7 +1814,7 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
 	sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
 	    -e 's|\(os\.getenv("GITPYTHONLIB"\)[^)]*)|\1,"@@INSTLIBDIR@@")|' \
 	    -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
-	    $@.py >$@+ && \
+	    $(GIT_SRC)$@.py >$@+ && \
 	chmod +x $@+ && \
 	mv $@+ $@
 else # NO_PYTHON
@@ -1811,7 +1822,7 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : unimplemented.sh
 	$(QUIET_GEN)$(RM) $@ $@+ && \
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 	    -e 's|@@REASON@@|NO_PYTHON=$(NO_PYTHON)|g' \
-	    unimplemented.sh >$@+ && \
+	    $(GIT_SRC)unimplemented.sh >$@+ && \
 	chmod +x $@+ && \
 	mv $@+ $@
 endif # NO_PYTHON
@@ -2142,7 +2153,7 @@ test-%$X: test-%.o $(GITLIBS)
 	$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(filter %.a,$^) $(LIBS)
 
 check-sha1:: test-sha1$X
-	./test-sha1.sh
+	$(GIT_SRC)./test-sha1.sh
 
 check: common-cmds.h
 	if sparse; \
@@ -2229,7 +2240,7 @@ endif
 		ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \
 		cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \
 	done && \
-	./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
+	$(GIT_SRC)./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
 
 install-gitweb:
 	$(MAKE) -C gitweb install
diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh
index 75c68d9..f718633 100755
--- a/generate-cmdlist.sh
+++ b/generate-cmdlist.sh
@@ -9,7 +9,7 @@ struct cmdname_help
 
 static struct cmdname_help common_cmds[] = {"
 
-sed -n -e 's/^git-\([^ 	]*\)[ 	].* common.*/\1/p' command-list.txt |
+sed -n -e 's/^git-\([^ 	]*\)[ 	].* common.*/\1/p' "$GIT_SRC"command-list.txt |
 sort |
 while read cmd
 do
@@ -19,6 +19,6 @@ do
             x
             s/.*git-'"$cmd"' - \(.*\)/  {"'"$cmd"'", "\1"},/
 	    p
-     }' "Documentation/git-$cmd.txt"
+     }' "${GIT_SRC}Documentation/git-$cmd.txt"
 done
 echo "};"
diff --git a/perl/Makefile b/perl/Makefile
index a2ffb64..7c3a82a 100644
--- a/perl/Makefile
+++ b/perl/Makefile
@@ -44,4 +44,4 @@ endif
 # this is just added comfort for calling make directly in perl dir
 # (even though GIT-CFLAGS aren't used yet. If ever)
 ../GIT-CFLAGS:
-	$(MAKE) -C .. GIT-CFLAGS
+	$(MAKE) -C $(GIT_SRC).. GIT-CFLAGS
-- 
1.7.2.3

^ permalink raw reply related

* [refpolicy] [PATCH 2/2]policy/modules/system/lvm.te Typo change directores to directories, and also clean up a comment.
From: Guido Trentalancia @ 2011-02-01 20:13 UTC (permalink / raw)
  To: refpolicy
In-Reply-To: <1296495613-21803-2-git-send-email-justinmattock@gmail.com>

Thanks for the two documentation patches Justin !

Regards,

Guido

On Mon, 31/01/2011 at 09.40 -0800, Justin P. Mattock wrote:
> The below patch changes a typo "directores" to "directories", and also
> fixes a comment to sound more proper.
> 
> Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
> 
> ---
>  policy/modules/system/lvm.te |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/policy/modules/system/lvm.te b/policy/modules/system/lvm.te
> index 86ef2da..74e38b4 100644
> --- a/policy/modules/system/lvm.te
> +++ b/policy/modules/system/lvm.te
> @@ -274,9 +274,9 @@ storage_relabel_fixed_disk(lvm_t)
>  storage_dontaudit_read_removable_device(lvm_t)
>  # LVM creates block devices in /dev/mapper or /dev/<vg>
>  # depending on its version
> -# LVM(2) needs to create directores (/dev/mapper, /dev/<vg>)
> +# LVM(2) needs to create directories (/dev/mapper, /dev/<vg>)
>  # and links from /dev/<vg> to /dev/mapper/<vg>-<lv>
> -# cjp: need create interface here for fixed disk create
> +# cjp: needs to create an interface here for fixed disk create
>  storage_dev_filetrans_fixed_disk(lvm_t)
>  # Access raw devices and old /dev/lvm (c 109,0).  Is this needed?
>  storage_manage_fixed_disk(lvm_t)

^ permalink raw reply

* moving to a git-backed wiki
From: Jeff King @ 2011-02-01 20:11 UTC (permalink / raw)
  To: Scott Chacon; +Cc: Junio C Hamano, git
In-Reply-To: <AANLkTimHCp_JKUw1keJoA4zD_q7Sci+rOwPeAs_T=7xH@mail.gmail.com>

On Tue, Feb 01, 2011 at 10:34:24AM -0800, Scott Chacon wrote:

> > GitHub's wiki gets this right. I'm not saying we should host our wiki
> > there (well, it _would_ make setting it up pretty damn easy). But their
> > wiki system (gollum) is open-source, albeit in ruby. And surely there
> > are other git-backed alternatives (it's been a while since I've looked).
> 
> If you want to use the wiki on the git/git repo on GitHub that is
> being mirrored from the canonical repository, I've added Junio and
> peff to the account.  If you want to use that wiki, anyone with a
> github account can edit wiki pages on the site or clone and edit it
> locally and push changes up.  You can also turn off site edits so
> people have to send Junio a patch instead.  It's up to you guys, but
> the access is there now if you want.

Out of curiosity, I scraped the kernel wiki and put it into gollum. The
results are here, if people want to see what it looks like:

  https://github.com/peff/foo/wiki

It's extremely quick and dirty, which is why I didn't put it in the
actual git/git/wiki spot you made. Some of the formatting is off (note
that I didn't do any conversion; it understands mediawiki natively), and
some of the content is probably missing (my scraper was extremely
naive). For a real import I would try to get the actual wiki db from
kernel.org and import the entire history.

I dunno what the next step would be. I would really prefer a git-backed
wiki, but moving to something like this is a pretty big step in workflow
for people who use the current wiki. I would be curious to hear general
opinions (on the idea of moving, assuming we did a conversion that
actually looked good). I'll change the subject and see if we get any
comments.

-Peff

^ permalink raw reply

* Re: [Qemu-devel] [PATCH 7/7] ahci: work around bug with level interrupts
From: Alexander Graf @ 2011-02-01 20:10 UTC (permalink / raw)
  To: Aurelien Jarno
  Cc: Kevin Wolf, Joerg Roedel, qemu-devel Developers,
	Sebastian Herbszt
In-Reply-To: <20110201195824.GB17924@volta.aurel32.net>


On 01.02.2011, at 20:58, Aurelien Jarno wrote:

> On Tue, Feb 01, 2011 at 07:35:01PM +0100, Alexander Graf wrote:
>> When using level based interrupts, the interrupt is treated the same as an
>> edge triggered one: leaving the line up does not retrigger the interrupt.
>> 
>> In fact, when not lowering the line, we won't ever get a new interrupt inside
>> the guest. So let's always retrigger an interrupt as soon as the OS ack'ed
>> something on the device. This way we're sure the guest doesn't starve on
>> interrupts until someone fixes the actual interrupt path.
>> 
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> 
>> ---
>> 
>> v2 -> v3:
>> 
>>  - add comment about the interrupt hack
>> ---
>> hw/ide/ahci.c |    8 ++++++--
>> 1 files changed, 6 insertions(+), 2 deletions(-)
>> 
>> diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
>> index 98bdf70..95e1cf7 100644
>> --- a/hw/ide/ahci.c
>> +++ b/hw/ide/ahci.c
>> @@ -152,11 +152,15 @@ static void ahci_check_irq(AHCIState *s)
>>         }
>>     }
>> 
>> +    /* XXX We lower the interrupt line here because of a bug with interrupt
>> +           handling in Qemu. When leaving a line up, the interrupt does
>> +           not get retriggered automatically currently. Once that bug is fixed,
>> +           this workaround is not necessary anymore and we only need to lower
>> +           in the else branch. */
>> +    ahci_irq_lower(s, NULL);
>>     if (s->control_regs.irqstatus &&
>>         (s->control_regs.ghc & HOST_CTL_IRQ_EN)) {
>>             ahci_irq_raise(s, NULL);
>> -    } else {
>> -        ahci_irq_lower(s, NULL);
>>     }
>> }
>> 
> 
> It's a lot better that way, however I think we should still keep the
> correct code. Also given this problem only concerns the i386 target (ppc
> code is actually a bit strange, but at the end does the correct thing),
> it's something we should probably mention.
> 
> What about something like that?

While I dislike #if 0s in released code in general, it's fine with me. I know what I meant based on the comment, but for others this might make it more explicit. How would we go about committing this? Kevin, will you just change the code inside your tree?


Alex

^ permalink raw reply

* Re: [PATCH]: netfilter: ipset: use nla_parse_nested()
From: Jozsef Kadlecsik @ 2011-02-01 20:10 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: netfilter-devel@vger.kernel.org
In-Reply-To: <4D4826E6.2050200@trash.net>

On Tue, 1 Feb 2011, Patrick McHardy wrote:

> I'll be sending a few cleanup patches, I'm already committing them
> to my tree, just NACK the ones you think are wrong and I'll back
> them out again.

It's cool, thanks! Your patches 01-03 are OK, I applied them to my tree.

Best regards,
Jozsef
-
E-mail  : kadlec@blackhole.kfki.hu, kadlec@mail.kfki.hu
PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt
Address : KFKI Research Institute for Particle and Nuclear Physics
          H-1525 Budapest 114, POB. 49, Hungary

^ permalink raw reply

* Re: [patch 3/6] ipset: pass ipset_arg argument pointer
From: Jozsef Kadlecsik @ 2011-02-01 20:10 UTC (permalink / raw)
  To: Holger Eitzenberger; +Cc: netfilter-devel
In-Reply-To: <alpine.DEB.2.00.1101271104170.24771@blackhole.kfki.hu>

On Thu, 27 Jan 2011, Jozsef Kadlecsik wrote:

> Hi Holger,
> 
> On Tue, 25 Jan 2011, Jozsef Kadlecsik wrote:
> 
> > On Mon, 24 Jan 2011, Holger Eitzenberger wrote:
> > 
> > > Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
> > > 
> > > Index: ipset/src/ipset.c
> > > ===================================================================
> > > --- ipset.orig/src/ipset.c
> > > +++ ipset/src/ipset.c
> > > @@ -208,7 +208,6 @@ call_parser(int *argc, char *argv[], con
> > >  {
> > >  	int i = 1, ret = 0;
> > >  	const struct ipset_arg *arg;
> > > -	const char *optstr;
> > >  	
> > >  	/* Currently CREATE and ADT may have got additional arguments */
> > >  	if (!args)
> > > @@ -221,7 +220,6 @@ call_parser(int *argc, char *argv[], con
> > >  				i++;
> > >  				continue;
> > >  			}
> > > -			optstr = argv[i];
> > >  			/* Shift off matched option */
> > >  			D("match %s", arg->name[0]);
> > >  			ipset_shift_argv(argc, argv, i);
> > > @@ -236,10 +234,7 @@ call_parser(int *argc, char *argv[], con
> > >  				/* Fall through */
> > >  			case IPSET_OPTIONAL_ARG:
> > >  				if (i + 1 <= *argc) {
> > > -					ret = ipset_call_parser(session,
> > > -							arg->parse,
> > > -							optstr, arg->opt,
> > > -							argv[i]);
> > > +					ret = ipset_call_parser(session, arg, argv[i]);
> > >  					if (ret < 0)
> > >  						return ret;
> > >  					ipset_shift_argv(argc, argv, i);
> > > @@ -247,10 +242,7 @@ call_parser(int *argc, char *argv[], con
> > >  				}
> > >  				/* Fall through */
> > >  			default:
> > > -				ret = ipset_call_parser(session,
> > > -							arg->parse,
> > > -							optstr, arg->opt,
> > > -							optstr);
> > > +				ret = ipset_call_parser(session, arg, argv[1]);
> > 
> > We can't do this, because then the flag-style options (no arg) cannot be 
> > parsed. So I cannot apply this patch and the next two ones based on it.
> 
> If optstr is kept, then that can be passed to the parser in the default 
> branch. Could you rewrite your patch that way and resend to me (and the 
> dependent ones too)?

I re-added the missing bits and applied your patches. 

Best regards,
Jozsef
-
E-mail  : kadlec@blackhole.kfki.hu, kadlec@mail.kfki.hu
PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt
Address : KFKI Research Institute for Particle and Nuclear Physics
          H-1525 Budapest 114, POB. 49, Hungary

^ permalink raw reply

* Re: XFS Preallocation
From: Stan Hoeppner @ 2011-02-01 20:12 UTC (permalink / raw)
  To: Peter Vajgel; +Cc: Jef Fox, xfs@oss.sgi.com
In-Reply-To: <3F5ACD12257C714E9C0535D0A839171802AB01@SC-MBX02-2.TheFacebook.com>

Peter Vajgel put forth on 2/1/2011 1:20 PM:

> At the scale we operate it does. We have multiple variables so the number of combinations is large. We have hit every single possible hardware and software problem and problem resolution can take months if it takes days to reproduce the problem. Hardware vendors (disk, controller, motherboard manufacturers) are much more responsive when you can reproduce a problem on the fly in seconds (especially in comparative benchmarking). The tests usually run only couple of minutes. With 12x3TB (possibly multiplied by a factor of X with our new platform) it would be unacceptable to wait for writes to finish.

Hi Peter,

When you mention scale, you're referring to the storage back end at
facebook.com, your employer, correct?

-- 
Stan


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply

* Re: OE TSC
From: Frans Meulenbroeks @ 2011-02-01 20:08 UTC (permalink / raw)
  To: openembedded-devel, openembedded-members, board
In-Reply-To: <4D484FED.10603@balister.org>

2011/2/1 Philip Balister <philip@balister.org>:
> On 02/01/2011 11:43 AM, Frans Meulenbroeks wrote:
>>
>> I think the call for candidates should be on the members list, and the
>> voting also should be done by the members.
>
> Frans, we need to get an interim TSC in place to help with the Yocto
> integration work. It will also give the membership a chance to see them in
> action before we have to vote on them.
>
> I would like some feedback from the members about how long a TSC term should
> be and if we should stagger the positions. We can use this feedback to
> determine when to replace the appointed TSC with an elected one.
>
> My personal thoughts are have the initial appointment be long enough to get
> the Yocto/OE integration in good shape.
>
> Philip

Philip, is this your personal view or are your representing the board in this?

In the start post Richard wrote:
"The TSC is not self electing so we're going to hand this issue over to
the board at this point to determine the way forward."

I have not seen any communication from the board on this (but of
course there is always the chance I missed it, most days oe+poky+yocto
email seem to be > 100 mails), unless your mail is on behalf of the
board.

I feel the board has a responsibility on stating the procedure that
will be followed on this.
I see people putting themselves forward as candidates, but I have not
even seen a call for candidates, or a period during which people can
candidate themselves, or any indication on how they will be selected.

And while I agree that we need a team to work on the oe <-> yocto
cooperation (or maybe collaboration is a better word), but a team that
is chosen by the community is much more empowered to make decisions.

Wrt the TSC term: from the oedem 2010 minutes:
"- January 7th 2010 TSC meeting minutes mentions the yearly TSC re-election."
It might e a good idea move to a longer term and staggered election.
(e.g. half of the TSC stepping down in a year). I feel we can have
this discussion also at a later time.

Best regards, Frans.



^ permalink raw reply

* Re: [PATCH 2/2] security: remove unused security_sysctl hook
From: Eric Paris @ 2011-02-01 20:06 UTC (permalink / raw)
  To: Stephen Smalley
  Cc: Lucian Adrian Grijincu, James Morris, ebiederm@xmission.com,
	linux-kernel@vger.kernel.org,
	linux-security-module@vger.kernel.org
In-Reply-To: <1296587121.12605.30.camel@moss-pluto>





On Feb 1, 2011, at 2:05 PM, Stephen Smalley <sds@tycho.nsa.gov> wrote:

> On Tue, 2011-02-01 at 18:44 +0200, Lucian Adrian Grijincu wrote:
>> The only user for this hook was selinux. sysctl routes every call
>> through /proc/sys/. Selinux and other security modules use the file
>> system checks for sysctl too, so no need for this hook any more.
>> 
>> Signed-off-by: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
> 
> Acked-by:  Stephen Smalley <sds@tycho.nsa.gov>

I've applied both to the selinux tree. Thanks

-Eric 
> 
>> ---
>> include/linux/security.h |   13 -------------
>> kernel/sysctl.c          |    5 -----
>> security/capability.c    |    6 ------
>> security/security.c      |    5 -----
>> 4 files changed, 0 insertions(+), 29 deletions(-)
>> 
>> diff --git a/include/linux/security.h b/include/linux/security.h
>> index c642bb8..e7b48dc 100644
>> --- a/include/linux/security.h
>> +++ b/include/linux/security.h
>> @@ -1257,12 +1257,6 @@ static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
>>  *    @cap contains the capability <include/linux/capability.h>.
>>  *    @audit: Whether to write an audit message or not
>>  *    Return 0 if the capability is granted for @tsk.
>> - * @sysctl:
>> - *    Check permission before accessing the @table sysctl variable in the
>> - *    manner specified by @op.
>> - *    @table contains the ctl_table structure for the sysctl variable.
>> - *    @op contains the operation (001 = search, 002 = write, 004 = read).
>> - *    Return 0 if permission is granted.
>>  * @syslog:
>>  *    Check permission before accessing the kernel message ring or changing
>>  *    logging to the console.
>> @@ -1383,7 +1377,6 @@ struct security_operations {
>>               const kernel_cap_t *permitted);
>>    int (*capable) (struct task_struct *tsk, const struct cred *cred,
>>            int cap, int audit);
>> -    int (*sysctl) (struct ctl_table *table, int op);
>>    int (*quotactl) (int cmds, int type, int id, struct super_block *sb);
>>    int (*quota_on) (struct dentry *dentry);
>>    int (*syslog) (int type);
>> @@ -1665,7 +1658,6 @@ int security_capset(struct cred *new, const struct cred *old,
>> int security_capable(int cap);
>> int security_real_capable(struct task_struct *tsk, int cap);
>> int security_real_capable_noaudit(struct task_struct *tsk, int cap);
>> -int security_sysctl(struct ctl_table *table, int op);
>> int security_quotactl(int cmds, int type, int id, struct super_block *sb);
>> int security_quota_on(struct dentry *dentry);
>> int security_syslog(int type);
>> @@ -1883,11 +1875,6 @@ int security_real_capable_noaudit(struct task_struct *tsk, int cap)
>>    return ret;
>> }
>> 
>> -static inline int security_sysctl(struct ctl_table *table, int op)
>> -{
>> -    return 0;
>> -}
>> -
>> static inline int security_quotactl(int cmds, int type, int id,
>>                     struct super_block *sb)
>> {
>> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
>> index 0f1bd83..56f6fc1 100644
>> --- a/kernel/sysctl.c
>> +++ b/kernel/sysctl.c
>> @@ -1685,13 +1685,8 @@ static int test_perm(int mode, int op)
>> 
>> int sysctl_perm(struct ctl_table_root *root, struct ctl_table *table, int op)
>> {
>> -    int error;
>>    int mode;
>> 
>> -    error = security_sysctl(table, op & (MAY_READ | MAY_WRITE | MAY_EXEC));
>> -    if (error)
>> -        return error;
>> -
>>    if (root->permissions)
>>        mode = root->permissions(root, current->nsproxy, table);
>>    else
>> diff --git a/security/capability.c b/security/capability.c
>> index 2a5df2b..ebe3b5d 100644
>> --- a/security/capability.c
>> +++ b/security/capability.c
>> @@ -12,11 +12,6 @@
>> 
>> #include <linux/security.h>
>> 
>> -static int cap_sysctl(ctl_table *table, int op)
>> -{
>> -    return 0;
>> -}
>> -
>> static int cap_syslog(int type)
>> {
>>    return 0;
>> @@ -880,7 +875,6 @@ void __init security_fixup_ops(struct security_operations *ops)
>>    set_to_cap_if_null(ops, capable);
>>    set_to_cap_if_null(ops, quotactl);
>>    set_to_cap_if_null(ops, quota_on);
>> -    set_to_cap_if_null(ops, sysctl);
>>    set_to_cap_if_null(ops, syslog);
>>    set_to_cap_if_null(ops, settime);
>>    set_to_cap_if_null(ops, vm_enough_memory);
>> diff --git a/security/security.c b/security/security.c
>> index 739e403..53d793a 100644
>> --- a/security/security.c
>> +++ b/security/security.c
>> @@ -182,11 +182,6 @@ int security_real_capable_noaudit(struct task_struct *tsk, int cap)
>>    return ret;
>> }
>> 
>> -int security_sysctl(struct ctl_table *table, int op)
>> -{
>> -    return security_ops->sysctl(table, op);
>> -}
>> -
>> int security_quotactl(int cmds, int type, int id, struct super_block *sb)
>> {
>>    return security_ops->quotactl(cmds, type, id, sb);
>> -- 
>> 1.7.4.rc1.7.g2cf08.dirty
> 
> -- 
> Stephen Smalley
> National Security Agency
> 

^ permalink raw reply

* Compat-wireless release for 2011-02-01 is baked
From: Compat-wireless cronjob account @ 2011-02-01 20:06 UTC (permalink / raw)
  To: linux-wireless

>From git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6
 * [new branch]      linux-2.6.38.y -> origin/linux-2.6.38.y
   8db1608..100cb85  master     -> origin/master
 * [new tag]         compat-wireless-2011-01-31 -> compat-wireless-2011-01-31
>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
 + c1649b7...d2627ce akpm-end   -> origin/akpm-end  (forced update)
   1f0324c..7921127  akpm-start -> origin/akpm-start
   c68e951..7911a84  history    -> origin/history
 + 89d343a...906227e master     -> origin/master  (forced update)
   1f0324c..7921127  stable     -> origin/stable
 * [new tag]         next-20110201 -> next-20110201
cat: /var/opt/compat/compat-wireless-2.6/compat_version: No such file or directory
cat: compat_base_tree: No such file or directory
cat: compat_base_tree_version: No such file or directory
cat: compat_version: No such file or directory
cat: /var/opt/compat/compat-wireless-2.6/compat_version: No such file or directory
scripts/Makefile.clean:17: /var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap/Makefile: No such file or directory
make[4]: *** No rule to make target `/var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap/Makefile'.  Stop.
make[3]: *** [/var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap] Error 2
make[2]: *** [/var/opt/compat/compat-wireless-2.6/drivers/net/wireless] Error 2
make[1]: *** [_clean_/var/opt/compat/compat-wireless-2.6] Error 2
make: *** [clean] Error 2
/usr/bin/sha1sum: *.tar.bz2: No such file or directory

compat-wireless code metrics

    786110 - Total upstream lines of code being pulled

^ permalink raw reply

* Re: [Qemu-devel] [PATCH 0/2] virtagent - fsfreeze support
From: Vasiliy G Tolstov @ 2011-02-01 20:04 UTC (permalink / raw)
  To: Richard W.M. Jones; +Cc: mdroth, Jes.Sorensen, qemu-devel, agl
In-Reply-To: <20110201160403.GB24736@amd.home.annexia.org>

On Tue, 2011-02-01 at 16:04 +0000, Richard W.M. Jones wrote:

> There are some experimental patches to libguestfs to do live
> filesystem and partition manipulations now:
> 
>   https://www.redhat.com/archives/libguestfs/2011-January/msg00096.html
> 
> Rich.
> 

Sorry, but i can't found any info about operating on already mounted
disk. As i known, libguestfs allows operating inside virtual machine via
userspace daemon. But in my case this works inside kernel module. But if
fs is  using it partition table not able to altered because bdev is
busy. Fdisk allows to change partition table, but says, that kernel must
be rebooted to see any changes. I think, that if i can after fdisk
change inside kernel some info about partitions i can do online resizing
fs (ext3). But i see, that partitions is only be operated by ioctl....

If some body says me what functions inside kernel may be exported (says
export_symbol_gpl) to change part info, i'm very glad =)

^ permalink raw reply

* Re: Locking in the clk API, part 2: clk_prepare/clk_unprepare
From: Nicolas Pitre @ 2011-02-01 20:06 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Russell King - ARM Linux, Lorenzo Pieralisi, Saravana Kannan,
	linux-sh, Ben Herrenschmidt, Sascha Hauer, Paul Mundt,
	linux-kernel, Dima Zavin, Ben Dooks, Vincent Guittot, Jeremy Kerr,
	linux-arm-kernel
In-Reply-To: <20110201193201.GH1147@pengutronix.de>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 574 bytes --]

On Tue, 1 Feb 2011, Uwe Kleine-König wrote:

> My motivation for a more complicated clk_prepare was to make clk_prepare
> atomic when that's possible (i.e. when the clk is already prepared) and
> call it before the enable callback in clk_enable.  Then everything
> behaves nicely even if clk_enable is called from atomic context provided
> that the clock was prepared before (or doesn't need to).

NOOOOOOOOO!!!

We _do_ want drivers to _always_ call clk_prepare() in sleepable 
context, and _then_ always call clk_enable() in whatever context they 
wish.  Period.


Nicolas

^ permalink raw reply

* Locking in the clk API, part 2: clk_prepare/clk_unprepare
From: Nicolas Pitre @ 2011-02-01 20:06 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20110201193201.GH1147@pengutronix.de>

On Tue, 1 Feb 2011, Uwe Kleine-K?nig wrote:

> My motivation for a more complicated clk_prepare was to make clk_prepare
> atomic when that's possible (i.e. when the clk is already prepared) and
> call it before the enable callback in clk_enable.  Then everything
> behaves nicely even if clk_enable is called from atomic context provided
> that the clock was prepared before (or doesn't need to).

NOOOOOOOOO!!!

We _do_ want drivers to _always_ call clk_prepare() in sleepable 
context, and _then_ always call clk_enable() in whatever context they 
wish.  Period.


Nicolas

^ permalink raw reply

* Re: Locking in the clk API, part 2: clk_prepare/clk_unprepare
From: Nicolas Pitre @ 2011-02-01 20:06 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20110201193201.GH1147@pengutronix.de>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 589 bytes --]

On Tue, 1 Feb 2011, Uwe Kleine-König wrote:

> My motivation for a more complicated clk_prepare was to make clk_prepare
> atomic when that's possible (i.e. when the clk is already prepared) and
> call it before the enable callback in clk_enable.  Then everything
> behaves nicely even if clk_enable is called from atomic context provided
> that the clock was prepared before (or doesn't need to).

NOOOOOOOOO!!!

We _do_ want drivers to _always_ call clk_prepare() in sleepable 
context, and _then_ always call clk_enable() in whatever context they 
wish.  Period.


Nicolas

^ permalink raw reply

* Re: [PATCH v2 5/6] KVM-GST: adjust scheduler cpu power
From: Peter Zijlstra @ 2011-02-01 20:04 UTC (permalink / raw)
  To: Glauber Costa
  Cc: kvm, linux-kernel, aliguori, Rik van Riel, Jeremy Fitzhardinge,
	Avi Kivity
In-Reply-To: <1296590129.5081.130.camel@mothafucka.localdomain>

On Tue, 2011-02-01 at 17:55 -0200, Glauber Costa wrote:
> 
> update_rq_clock_task still have to keep track of what was the last steal
> time value we saw, in the same way it does for irq.

Right, the CONFIG_SCHED_PARAVIRT patch I sent earlier adds a
prev_steal_time member to struct rq for this purpose.

>  One option is to
> call update_rq_clock_task from inside kvm-code, but I don't really like
> it very much.

Why would you need to call anything from the kvm code?

Simply make u64 steal_time_clock(int cpu) a paravirt function with u64
native_steal_time_clock(int cpu) { return 0ULL; }. Possibly avoid the
whole CONFIG_SCHED_PARAVIRT block in update_rq_clock_task() for !
paravirt guests.


^ permalink raw reply

* Re: How To Temporarily Suspend Network Traffic
From: Rick Jones @ 2011-02-01 20:03 UTC (permalink / raw)
  To: Volkan YAZICI; +Cc: netdev
In-Reply-To: <87ipx335e1.fsf@alamut.ozu.edu.tr>

Volkan YAZICI wrote:
> On Tue, 01 Feb 2011 09:32:32 -0800, Rick Jones writes:
> 
>>Out of not quite idle curiousity, what are you trying to accomplish?
> 
> I'm trying to implement a coarse-grained soft-TDMA (Time Division
> Multiple Access) among devices in a Wi-Fi network. (Coarse-grained, that
> is, compared to a hardware implementation.) Assuming that device clocks
> are in sync via NTP, I will figure out the granularity I can achieve
> with soft-TDMA.

As in Fred gets to transmit from 0 to N, Ethel gets to transmit from N+1 to 2N 
and so on, based on absolute time?

Getting small number of microsecond synchronization between multiple systems via 
NTP (particularly if they are synchronized via a wireless network) may prove 
challenging.  At least that is my take as a member of the peanut gallery reading 
over the shoulders of the discussions that take place in comp.protocols.time.ntp

>>Instead of using tc to set a zero rate, you could perhaps try using tc
>>to set a delay? If it doesn't offer microseconds of delay, pehaps
>>setting a delay and then eliminating it after your own pause will do
>>what you want - depends of course on what it is you really want.
> 
> Thanks for the advice. I'll check this out and see what I can do.
> 
>>Your saying you wanted microsecond granularity suggests you don't want
>>to suspend traffic for very long?
> 
> I want to figure out the smallest delay that I can achieve in a periodic
> manner. (E.g., freeze the traffic for 200us, continue without
> interruption for 800us, and freeze the traffic again for another 200us,
> etc.) Pay attention that, an undeterministic delay somewhere in between
> 1000us is not something I prefer, I must be able to determine the point
> in time where delay will appear -- ofcourse, with some error margin.

Sounds, well, challenging :)  The determining the point in time part in 
particular.  One thing I've learned is that the cell towers in a cell network 
sync their time directly to GPS with some kit that is non-trivially expensive.

rick jones

> 
> 
> Regards.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply

* [refpolicy] [PATCH/RFC 2/19]: patch set to update the git reference policy
From: Guido Trentalancia @ 2011-02-01 20:03 UTC (permalink / raw)
  To: refpolicy
In-Reply-To: <4D48132F.7070705@tresys.com>

Hello Christopher !

On Tue, 01/02/2011 at 09.05 -0500, Christopher J. PeBenito wrote:
> On 01/31/11 18:15, Guido Trentalancia wrote:
> > Hello again Christopher !
> > 
> > On Mon, 31/01/2011 at 13.52 -0500, Christopher J. PeBenito wrote:
> >> On 1/24/2011 9:24 AM, Dominick Grift wrote:
> >>> On 01/24/2011 01:43 AM, Guido Trentalancia wrote:
> >>
> >> Please include descriptions on each of your patches.  The subject is 
> >> definitely insufficient.  I guess this is all the dbus changes you 
> >> suggest?  More
> > 
> > The DBus send_msg issue is the probably the main change introduced by
> > the set of patches that I am proposing.
> > 
> > The issue is very wide and needs careful approval. It's not limited to
> > this [2/19] patch/thread at all. It is mainly a style issue, but it's an
> > important one.
> > 
> > In my reply to [0/19] I have pointed out a few threads where such issue
> > has been discussed more extensively between me and Dominick, because we
> > kept having different point of views and none of us managed to
> > definitely persuade the other !
> > 
> > In any case, [2/19] and [8/19] are perhaps the most relevant places
> > where you can provide a definite direction on this (in short, can we
> > really talk about an hypothetical DBus "chat" throughout all refpolicy
> > and model interfaces accordingly to such assumption when on the other
> > hand the elementary data-flow in DBus is constituted by a
> > uni-directional message called "signal" ?).
> 
> There already is an established verb for unidirectional dbus messaging:
> send.  See unconfined_dbus_send() for an example.  If there is
> unidirectional messaging, the policy should reflect that.

Yes, unconfined_dbus_send() can be used in the context of the unconfined
domain.

But then there are many other circumstances where DBus messaging needs
to take place. My original dbus-messaging patch ([2/19]) contains
several examples of where this appears to be needed.

I prefer to grant two distinct and separate uni-directional send_msg
permissions in the two relevant modules anyway (even in the case of
bi-directional messaging).

Therefore, I have always created new *_dbus_send() interfaces even where
*_dbus_chat() interfaces were present (and could in theory be used).

What do you think ?

Regards,

Guido

^ permalink raw reply

* Re: poky-image-sato-sdk failed at do_rootfs
From: Mark Hatle @ 2011-02-01 20:00 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: poky@yoctoproject.org
In-Reply-To: <20110201192705.2546DB187@gemini.denx.de>

The failure indicated in your logs comes from building pseudo-native.  This is
not related to the previous messages you sent.

What is the host system type (Fedora, RHEL, etc), what is your byte size?
32-bit or 64-bit kernel...  any anything else you can give us to reproduce your
configuration.

The error below is fairly obvious.. it tried to build a 32-bit version of the
pseudo libraries, this build failed due to a lack of 32-bit libgcc.so installed
on your host.

If I had to guess you have a 64-bit Fedora or RHEL host, and only partial 32-bit
support installed.  Check using rpm or yum if you have the 32-bit libgcc-devel
package installed.  (I'd also check for 32-bit glibc-devel).

--Mark

On 2/1/11 1:27 PM, Wolfgang Denk wrote:
> Dear Richard Purdie,
> 
> In message <1296567139.13501.19158.camel@rex> you wrote:
>>
>> Can you please try a build from scratch. I think most of your .ipk files
>> look corrupt as there are many eglibc dependencies in there which there
>> simply shouldn't be. If they were built whilst eglibc was rebuilding
>> that would explain the problem but it means your build directory is
>> unstable now :(. If there is a root cause, the above patch isn't it.
> 
> I just ran a build of poky-image-sato-sdk for qemuarm from scratch,
> mainline code, git commit id 4c8f498
> 
> Result:
> 
> ...
> | ccache gcc -m32 -pipe -std=gnu99 -Wall -W -Wextra -fPIC -D_LARGEFILE64_SOURCE -D_ATFILE_SOURCE -m32 -DPSEUDO_PREFIX='"/opt/poky/build/mainline-4c8f498/tmp/sysroots/x86_64-linux/usr"' -DPSEUDO_SUFFIX='""' -DPSEUDO_BINDIR='"bin"' -DPSEUDO_LIBDIR='"lib/pseudo/lib"' -DPSEUDO_LOCALSTATEDIR='"var/pseudo"' -DPSEUDO_VERSION='"0.3"' -O2 -g -L/opt/poky/build/mainline-4c8f498/tmp/sysroots/x86_64-linux/usr/lib -I/opt/poky/build/mainline-4c8f498/tmp/sysroots/x86_64-linux/usr/include -Wl,-R/opt/poky/build/mainline-4c8f498/tmp/sysroots/x86_64-linux/usr/lib -shared -o lib/pseudo/lib/libpseudo.so \
> |       pseudo_client.o pseudo_ipc.o \
> |       pseudo_wrappers.o pseudo_tables.o pseudo_util.o -ldl
> | /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.5.1/libgcc_s.so when searching for -lgcc_s
> | /usr/bin/ld: cannot find -lgcc_s
> | collect2: ld returned 1 exit status
> | make: *** [lib/pseudo/lib/libpseudo.so] Error 1
> | FATAL: oe_runmake failed
> | Function 'do_compile' failed (see /opt/poky/build/mainline-4c8f498/tmp/work/x86_64-linux/pseudo-native-0.0+git0+bcb42d80c0817da5479ab9c4f2cd8c4727e98ef8-r17/temp/log.do_compile.17807 for further information)
> NOTE: package pseudo-native-0.0+git0+bcb42d80c0817da5479ab9c4f2cd8c4727e98ef8-r17: task do_compile: Failed
> ERROR: 'virtual:native:/opt/poky/git/poky/work/meta/recipes-devtools/pseudo/pseudo_git.bb' failed
> ERROR: Task 7 (virtual:native:/opt/poky/git/poky/work/meta/recipes-devtools/pseudo/pseudo_git.bb, do_compile) failed with exit code '1'
> 
> 
> 
> Best regards,
> 
> Wolfgang Denk
> 



^ permalink raw reply

* Re: [poky] [PATCH 2/2] linux-yocto: export kernel configuration audit to the console
From: Darren Hart @ 2011-02-01 20:01 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: yocto, poky, saul.wold
In-Reply-To: <AANLkTink7v3PP=N6fXfvMFGzwOJXY-KX10UtfrCkd0Ei@mail.gmail.com>

On 02/01/2011 11:09 AM, Bruce Ashfield wrote:
> On Tue, Feb 1, 2011 at 1:47 PM, Darren Hart<dvhart@linux.intel.com>  wrote:
>> On 02/01/2011 09:25 AM, Bruce Ashfield wrote:
>>>
>>> Fixes [BUGID #692]
>>>
>>> Previously the information dumped by the kernel configuration audit
>>> scripts was only placed in log files. This isn't as useful as it
>>> could be, since they are rarely checked. This change takes the
>>> output from kconf_check and explicitly displays it to the user.
>>>
>>> Signed-off-by: Bruce Ashfield<bruce.ashfield@windriver.com>
>>
>>> diff --git a/meta/conf/distro/include/poky-default-revisions.inc
>>> b/meta/conf/distro/include/poky-default-revisions.inc
>>> index 0c3aa9a..ac0de6a 100644
>>> --- a/meta/conf/distro/include/poky-default-revisions.inc
>>> +++ b/meta/conf/distro/include/poky-default-revisions.inc
>>
>>> -SRCREV_meta_pn-linux-yocto ?= "8a49ef6f1a43dabbce34a9ee9a1be08b26fc511c"
>>> +SRCREV_meta_pn-linux-yocto ?= "e8b8c1ae44932835f4f79e77180d3ce5e4b1ec99"
>>
>> Was this an intentional change? It wasn't clear to me above which bits
>> necessitated a linux-yocto-2.6.37/meta SRCREV change.
>
> Good catch, and typically that would have been a mistake. That's
> me updating the captured scripts to have the updated kconf_check
> (among others), so it was intentional, but I did for get to mention it
> in the submission email.

Ah right, of course. Thanks!

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


^ permalink raw reply

* Re: [PATCH 2/2] linux-yocto: export kernel configuration audit to the console
From: Darren Hart @ 2011-02-01 20:01 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: yocto, poky, saul.wold
In-Reply-To: <AANLkTink7v3PP=N6fXfvMFGzwOJXY-KX10UtfrCkd0Ei@mail.gmail.com>

On 02/01/2011 11:09 AM, Bruce Ashfield wrote:
> On Tue, Feb 1, 2011 at 1:47 PM, Darren Hart<dvhart@linux.intel.com>  wrote:
>> On 02/01/2011 09:25 AM, Bruce Ashfield wrote:
>>>
>>> Fixes [BUGID #692]
>>>
>>> Previously the information dumped by the kernel configuration audit
>>> scripts was only placed in log files. This isn't as useful as it
>>> could be, since they are rarely checked. This change takes the
>>> output from kconf_check and explicitly displays it to the user.
>>>
>>> Signed-off-by: Bruce Ashfield<bruce.ashfield@windriver.com>
>>
>>> diff --git a/meta/conf/distro/include/poky-default-revisions.inc
>>> b/meta/conf/distro/include/poky-default-revisions.inc
>>> index 0c3aa9a..ac0de6a 100644
>>> --- a/meta/conf/distro/include/poky-default-revisions.inc
>>> +++ b/meta/conf/distro/include/poky-default-revisions.inc
>>
>>> -SRCREV_meta_pn-linux-yocto ?= "8a49ef6f1a43dabbce34a9ee9a1be08b26fc511c"
>>> +SRCREV_meta_pn-linux-yocto ?= "e8b8c1ae44932835f4f79e77180d3ce5e4b1ec99"
>>
>> Was this an intentional change? It wasn't clear to me above which bits
>> necessitated a linux-yocto-2.6.37/meta SRCREV change.
>
> Good catch, and typically that would have been a mistake. That's
> me updating the captured scripts to have the updated kconf_check
> (among others), so it was intentional, but I did for get to mention it
> in the submission email.

Ah right, of course. Thanks!

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


^ permalink raw reply

* Re: 2.6.38-rc2: Uhhuh. NMI received for unknown reason 2d on CPU 0.
From: Cyrill Gorcunov @ 2011-02-01 20:00 UTC (permalink / raw)
  To: Don Zickus
  Cc: George Spelvin, linux-kernel, Ingo Molnar, Peter Zijlstra,
	Lin Ming, Stephane Eranian
In-Reply-To: <20110201185120.GD21209@redhat.com>

On 02/01/2011 09:51 PM, Don Zickus wrote:
...
>>
>> You mean it didn't help?
> 
> Not that I noticed no.
> 
> Cheers,
> Don

 Thanks a huge for testing, Don! I'll check what else I can do.

-- 
    Cyrill

^ permalink raw reply


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.