NetBSD Problem Report #45051
From www@NetBSD.org Sat Jun 11 17:08:40 2011
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id B9FF263C746
for <gnats-bugs@gnats.NetBSD.org>; Sat, 11 Jun 2011 17:08:40 +0000 (UTC)
Message-Id: <20110611170839.C988E63B970@www.NetBSD.org>
Date: Sat, 11 Jun 2011 17:08:39 +0000 (UTC)
From: roger.pau@entel.upc.edu
Reply-To: roger.pau@entel.upc.edu
To: gnats-bugs@NetBSD.org
Subject: dom0 kernel panic with Xen41: panic: pool 'pvpl' is IPL_NONE, but called from interrupt context
X-Send-Pr-Version: www-1.0
>Number: 45051
>Category: kern
>Synopsis: dom0 kernel panic with Xen41: panic: pool 'pvpl' is IPL_NONE, but called from interrupt context
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: jym
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jun 11 17:10:01 +0000 2011
>Closed-Date: Fri Jul 15 11:32:21 +0000 2011
>Last-Modified: Fri Jul 15 11:32:21 +0000 2011
>Originator: Roger Pau
>Release: NetBSD 5.99.52 (XEN3_DOM0)
>Organization:
UPC
>Environment:
NetBSD loki 5.99.52 NetBSD 5.99.52 (XEN3_DOM0) #0: Sat Jun 11 11:46:31 CEST 2011 royger@loki:/usr/obj/sys/arch/amd64/compile/XEN3_DOM0 amd64
>Description:
Got the following panic while downloading an iso with wget at 5M/s from a NetBSD-current dom0:
panic: pool 'pvpl' is IPL_NONE, but called from interrupt context
cpu0: Begin traceback...
copyright() at ffffffff809a3162
rb_tree_find_node() at netbsd:rb_tree_find_node+0x4a
?() at ffffffff
pool_cache_get_paddr() at netbsd:pool_cache_get_paddr+0x125
pmap_enter_ma() at netbsd:pmap_enter_ma+0x157
pmap_enter() at netbsd:pmap_enter+0x5a
_bus_dmamem_map() at netbsd:_bus_dmamem_map+0xe7
_bus_dma_alloc_bouncebuf() at netbsd:_bus_dma_alloc_bouncebuf+0xa0
_bus_dmamap_create() at netbsd:_bus_dmamap_create+0x178
bnx_alloc_pkts() at netbsd:bnx_alloc_pkts+0x66
bnx_tx_encap() at netbsd:bnx_tx_encap+0x5c
bnx_start() at netbsd:bnx_start+0x7e
ifq_enqueue() at netbsd:ifq_enqueue+0xbe
ether_output() at netbsd:ether_output+0x657
ip_output() at netbsd:ip_output+0xba0
tcp_output() at netbsd:tcp_output+0x1503
tcp_input() at netbsd:tcp_input+0x328d
ip_input() at netbsd:ip_input+0x452
ipintr() at netbsd:ipintr+0x70
softint_thread() at netbsd:softint_thread+0x92
cpu0: End traceback...
dump to dev 4,1 not possible
rebooting...
(XEN) Domain 0 shutdown: rebooting machine.
>How-To-Repeat:
wget <large file>
From a dom0 NetBSD-current. I don't know if the speed at which I was downloading has anything to do with the issue. Also the network card is a Broadcom NetXtreme II.
>Fix:
>Release-Note:
>Audit-Trail:
From: Manuel Bouyer <bouyer@antioche.eu.org>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@NetBSD.org, gnats-admin@NetBSD.org, netbsd-bugs@NetBSD.org
Subject: Re: kern/45051: dom0 kernel panic with Xen41: panic: pool 'pvpl'
is IPL_NONE, but called from interrupt context
Date: Tue, 14 Jun 2011 18:19:08 +0200
On Sat, Jun 11, 2011 at 05:10:01PM +0000, roger.pau@entel.upc.edu wrote:
> >Number: 45051
> >Category: kern
> >Synopsis: dom0 kernel panic with Xen41: panic: pool 'pvpl' is IPL_NONE, but called from interrupt context
AFAIK this is not Xen-specific, it's yet another bug which shows up only
with 'options DIAGNOSTIC'
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--
Responsible-Changed-From-To: kern-bug-people->jym
Responsible-Changed-By: jym@NetBSD.org
Responsible-Changed-When: Tue, 12 Jul 2011 00:14:35 +0000
Responsible-Changed-Why:
Taking ownership of the bug.
State-Changed-From-To: open->analyzed
State-Changed-By: jym@NetBSD.org
State-Changed-When: Tue, 12 Jul 2011 00:14:35 +0000
State-Changed-Why:
When memory pressure is high, pools may be depleted and lead to allocation
of bounce buffers for pkt allocation with their associated DMA buffers.
The bnx_alloc_pkts() routine should be allowed to sleep, but this
cannot be done from a softint context.
As such, this task should be deferred to a separate thread (workqueue maybe?),
and all allocations should be made PR_WAITOK.
A patch will be proposed in the next few days to test impact on performance
(I do not have this hardware readily available).
From: Jean-Yves Migeon <jeanyves.migeon@free.fr>
To: gnats-bugs@NetBSD.org, roger.pau@entel.upc.edu
Cc: kern-bug-people@netbsd.org, netbsd-bugs@netbsd.org,
gnats-admin@netbsd.org
Subject: Re: kern/45051 (dom0 kernel panic with Xen41: panic: pool 'pvpl'
is IPL_NONE, but called from interrupt context)
Date: Wed, 13 Jul 2011 02:25:28 +0200
This is a multi-part message in MIME format.
--------------000100030203020704050007
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
On 12.07.2011 02:14, jym@NetBSD.org wrote:
> When memory pressure is high, pools may be depleted and lead to allocation
> of bounce buffers for pkt allocation with their associated DMA buffers.
> The bnx_alloc_pkts() routine should be allowed to sleep, but this
> cannot be done from a softint context.
> As such, this task should be deferred to a separate thread (workqueue maybe?),
> and all allocations should be made PR_WAITOK.
> A patch will be proposed in the next few days to test impact on performance
> (I do not have this hardware readily available).
Alright, first attempt. Inspiration comes from the workq implementation
in OpenBSD, with adaptations for our own workqueue(9). See attached.
That would be great if you could test this patch and report
success/failure, I don't have bnx(4) NIC at disposal currently. Don't
forget to keep DIAGNOSTIC on for the test.
Thanks for reporting!
--
Jean-Yves Migeon
jeanyves.migeon@free.fr
--------------000100030203020704050007
Content-Type: text/plain;
name="bnx.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="bnx.diff"
Index: sys/dev/pci/if_bnx.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_bnx.c,v
retrieving revision 1.43
diff -u -p -r1.43 if_bnx.c
--- sys/dev/pci/if_bnx.c 2 May 2011 09:03:10 -0000 1.43
+++ sys/dev/pci/if_bnx.c 13 Jul 2011 00:20:42 -0000
@@ -397,7 +397,7 @@ void bnx_stats_update(struct bnx_softc *
void bnx_tick(void *);
struct pool *bnx_tx_pool = NULL;
-int bnx_alloc_pkts(struct bnx_softc *);
+void bnx_alloc_pkts(struct work *, void *);
/****************************************************************************/
/* OpenBSD device dispatch table. */
@@ -705,6 +705,13 @@ bnx_attach(device_t parent, device_t sel
}
aprint_normal_dev(sc->bnx_dev, "interrupting at %s\n", intrstr);
+ /* create workqueue to handle packet allocations */
+ if (workqueue_create(&sc->bnx_wq, device_xname(self),
+ bnx_alloc_pkts, sc, PRI_NONE, IPL_NONE, WQ_MPSAFE) != 0) {
+ aprint_error_dev(self, "failed to create workqueue\n");
+ goto bnx_attach_fail;
+ }
+
sc->bnx_mii.mii_ifp = ifp;
sc->bnx_mii.mii_readreg = bnx_miibus_read_reg;
sc->bnx_mii.mii_writereg = bnx_miibus_write_reg;
@@ -799,6 +806,7 @@ bnx_detach(device_t dev, int flags)
pmf_device_deregister(dev);
callout_destroy(&sc->bnx_timeout);
ether_ifdetach(ifp);
+ workqueue_destroy(sc->bnx_wq);
/* Delete all remaining media. */
ifmedia_delete_instance(&sc->bnx_mii.mii_media, IFM_INST_ANY);
@@ -3839,21 +3847,22 @@ bnx_get_buf_exit:
return(rc);
}
-int
-bnx_alloc_pkts(struct bnx_softc *sc)
+void
+bnx_alloc_pkts(struct work * unused, void * arg)
{
+ struct bnx_softc *sc = arg;
struct ifnet *ifp = &sc->bnx_ec.ec_if;
struct bnx_pkt *pkt;
- int i;
+ int i, s;
for (i = 0; i < 4; i++) { /* magic! */
- pkt = pool_get(bnx_tx_pool, PR_NOWAIT);
+ pkt = pool_get(bnx_tx_pool, PR_WAITOK);
if (pkt == NULL)
break;
if (bus_dmamap_create(sc->bnx_dmatag,
MCLBYTES * BNX_MAX_SEGMENTS, USABLE_TX_BD,
- MCLBYTES, 0, BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW,
+ MCLBYTES, 0, BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW,
&pkt->pkt_dmamap) != 0)
goto put;
@@ -3866,13 +3875,23 @@ bnx_alloc_pkts(struct bnx_softc *sc)
mutex_exit(&sc->tx_pkt_mtx);
}
- return (i == 0) ? ENOMEM : 0;
+ mutex_enter(&sc->tx_pkt_mtx);
+ CLR(sc->bnx_flags, BNX_ALLOC_PKTS_FLAG);
+ mutex_exit(&sc->tx_pkt_mtx);
+
+ /* fire-up TX now that allocations have been done */
+ s = splnet();
+ if (!IFQ_IS_EMPTY(&ifp->if_snd))
+ bnx_start(ifp);
+ splx(s);
+
+ return;
stopping:
bus_dmamap_destroy(sc->bnx_dmatag, pkt->pkt_dmamap);
put:
pool_put(bnx_tx_pool, pkt);
- return (i == 0) ? ENOMEM : 0;
+ return;
}
/****************************************************************************/
@@ -3933,7 +3952,7 @@ bnx_init_tx_chain(struct bnx_softc *sc)
DBPRINT(sc, BNX_VERBOSE_RESET, "Entering %s()\n", __func__);
/* Force an allocation of some dmamaps for tx up front */
- bnx_alloc_pkts(sc);
+ bnx_alloc_pkts(NULL, sc);
/* Set the initial TX producer/consumer indices. */
sc->tx_prod = 0;
@@ -4805,8 +4824,8 @@ bnx_init(struct ifnet *ifp)
if ((error = ether_mediachange(ifp)) != 0)
goto bnx_init_exit;
- ifp->if_flags |= IFF_RUNNING;
- ifp->if_flags &= ~IFF_OACTIVE;
+ SET(ifp->if_flags, IFF_RUNNING);
+ CLR(ifp->if_flags, IFF_OACTIVE);
callout_reset(&sc->bnx_timeout, hz, bnx_tick, sc);
@@ -4839,8 +4858,8 @@ bnx_tx_encap(struct bnx_softc *sc, struc
u_int32_t addr, prod_bseq;
int i, error;
struct m_tag *mtag;
+ static struct work bnx_wk; /* Dummy work. Statically allocated. */
-again:
mutex_enter(&sc->tx_pkt_mtx);
pkt = TAILQ_FIRST(&sc->tx_free_pkts);
if (pkt == NULL) {
@@ -4848,14 +4867,15 @@ again:
mutex_exit(&sc->tx_pkt_mtx);
return ENETDOWN;
}
- if (sc->tx_pkt_count <= TOTAL_TX_BD) {
- mutex_exit(&sc->tx_pkt_mtx);
- if (bnx_alloc_pkts(sc) == 0)
- goto again;
- } else {
- mutex_exit(&sc->tx_pkt_mtx);
+
+ if (sc->tx_pkt_count <= TOTAL_TX_BD &&
+ !ISSET(sc->bnx_flags, BNX_ALLOC_PKTS_FLAG)) {
+ workqueue_enqueue(sc->bnx_wq, &bnx_wk, NULL);
+ SET(sc->bnx_flags, BNX_ALLOC_PKTS_FLAG);
}
- return (ENOMEM);
+
+ mutex_exit(&sc->tx_pkt_mtx);
+ return ENOMEM;
}
TAILQ_REMOVE(&sc->tx_free_pkts, pkt, pkt_entry);
mutex_exit(&sc->tx_pkt_mtx);
@@ -5082,7 +5102,7 @@ bnx_ioctl(struct ifnet *ifp, u_long comm
/* XXX set an ifflags callback and let ether_ioctl
* handle all of this.
*/
- if (ifp->if_flags & IFF_UP) {
+ if (ISSET(ifp->if_flags, IFF_UP)) {
if (ifp->if_flags & IFF_RUNNING)
error = ENETRESET;
else
Index: sys/dev/pci/if_bnxvar.h
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_bnxvar.h,v
retrieving revision 1.1
diff -u -p -r1.1 if_bnxvar.h
--- sys/dev/pci/if_bnxvar.h 9 Dec 2010 22:34:37 -0000 1.1
+++ sys/dev/pci/if_bnxvar.h 13 Jul 2011 00:20:42 -0000
@@ -46,7 +46,7 @@
#include <sys/device.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
-//#include <sys/workqueue.h>
+#include <sys/workqueue.h>
#include <net/if.h>
#include <net/if_dl.h>
@@ -126,6 +126,9 @@ struct bnx_softc
void *bnx_intrhand; /* Interrupt handler */
+ /* packet allocation workqueue */
+ struct workqueue *bnx_wq;
+
/* ASIC Chip ID. */
u_int32_t bnx_chipid;
--------------000100030203020704050007--
From: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@entel.upc.edu>
To: gnats-bugs@netbsd.org
Cc: jym@netbsd.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
Subject: Re: kern/45051 (dom0 kernel panic with Xen41: panic: pool 'pvpl' is
IPL_NONE, but called from interrupt context)
Date: Wed, 13 Jul 2011 10:25:21 +0200
SSd2ZSBiZWVuIHRlc3RpbmcgdGhlIHBhdGNoIHVzaW5nIGdpZ2FieXRlIHRyYW5zZmVyIHJhdGVz
IGZvciBhIGNvdXBsZQpvZiBob3VycyBhbmQgc2VlbXMgdG8gYmUgZmluZS4gSSd2ZSBhcHBsaWVk
IHRoZSBwYXRjaCBhZ2FpbnN0IE5ldEJTRAo1Ljk5LjUyLCBiZWNhdXNlIG5ld2VyIHZlcnNpb25z
IHNlZW0gdG8gaGF2ZSBwcm9ibGVtcyB3aXRoIFhlbi4gSSB3aWxsCmNvbnRpbnVlIHVzaW5nIGl0
LCBhbmQgcmVwb3J0IGJhY2sgaWYgSSBmaW5kIGFueSBwcm9ibGVtcy4gVGhhbmtzIGZvcgp0aGUg
aGFyZCB3b3JrLgoKUmVnYXJkcywgUm9nZXIuCgoyMDExLzcvMTMgSmVhbi1ZdmVzIE1pZ2VvbiA8
amVhbnl2ZXMubWlnZW9uQGZyZWUuZnI+Ogo+IFRoZSBmb2xsb3dpbmcgcmVwbHkgd2FzIG1hZGUg
dG8gUFIga2Vybi80NTA1MTsgaXQgaGFzIGJlZW4gbm90ZWQgYnkgR05BVFMuCj4KPiBGcm9tOiBK
ZWFuLVl2ZXMgTWlnZW9uIDxqZWFueXZlcy5taWdlb25AZnJlZS5mcj4KPiBUbzogZ25hdHMtYnVn
c0BOZXRCU0Qub3JnLCByb2dlci5wYXVAZW50ZWwudXBjLmVkdQo+IENjOiBrZXJuLWJ1Zy1wZW9w
bGVAbmV0YnNkLm9yZywgbmV0YnNkLWJ1Z3NAbmV0YnNkLm9yZywKPiDCoGduYXRzLWFkbWluQG5l
dGJzZC5vcmcKPiBTdWJqZWN0OiBSZToga2Vybi80NTA1MSAoZG9tMCBrZXJuZWwgcGFuaWMgd2l0
aCBYZW40MTogcGFuaWM6IHBvb2wgJ3B2cGwnCj4gwqBpcyBJUExfTk9ORSwgYnV0IGNhbGxlZCBm
cm9tIGludGVycnVwdCBjb250ZXh0KQo+IERhdGU6IFdlZCwgMTMgSnVsIDIwMTEgMDI6MjU6Mjgg
KzAyMDAKPgo+IMKgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4K
PiDCoC0tLS0tLS0tLS0tLS0tMDAwMTAwMDMwMjAzMDIwNzA0MDUwMDA3Cj4gwqBDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMQo+IMKgQ29udGVudC1UcmFuc2Zlci1F
bmNvZGluZzogN2JpdAo+Cj4gwqBPbiAxMi4wNy4yMDExIDAyOjE0LCBqeW1ATmV0QlNELm9yZyB3
cm90ZToKPiDCoD4gV2hlbiBtZW1vcnkgcHJlc3N1cmUgaXMgaGlnaCwgcG9vbHMgbWF5IGJlIGRl
cGxldGVkIGFuZCBsZWFkIHRvIGFsbG9jYXRpb24KPiDCoD4gb2YgYm91bmNlIGJ1ZmZlcnMgZm9y
IHBrdCBhbGxvY2F0aW9uIHdpdGggdGhlaXIgYXNzb2NpYXRlZCBETUEgYnVmZmVycy4KPiDCoD4g
VGhlIGJueF9hbGxvY19wa3RzKCkgcm91dGluZSBzaG91bGQgYmUgYWxsb3dlZCB0byBzbGVlcCwg
YnV0IHRoaXMKPiDCoD4gY2Fubm90IGJlIGRvbmUgZnJvbSBhIHNvZnRpbnQgY29udGV4dC4KPiDC
oD4gQXMgc3VjaCwgdGhpcyB0YXNrIHNob3VsZCBiZSBkZWZlcnJlZCB0byBhIHNlcGFyYXRlIHRo
cmVhZCAod29ya3F1ZXVlIG1heWJlPyksCj4gwqA+IGFuZCBhbGwgYWxsb2NhdGlvbnMgc2hvdWxk
IGJlIG1hZGUgUFJfV0FJVE9LLgo+IMKgPiBBIHBhdGNoIHdpbGwgYmUgcHJvcG9zZWQgaW4gdGhl
IG5leHQgZmV3IGRheXMgdG8gdGVzdCBpbXBhY3Qgb24gcGVyZm9ybWFuY2UKPiDCoD4gKEkgZG8g
bm90IGhhdmUgdGhpcyBoYXJkd2FyZSByZWFkaWx5IGF2YWlsYWJsZSkuCj4KPiDCoEFscmlnaHQs
IGZpcnN0IGF0dGVtcHQuIEluc3BpcmF0aW9uIGNvbWVzIGZyb20gdGhlIHdvcmtxIGltcGxlbWVu
dGF0aW9uCj4gwqBpbiBPcGVuQlNELCB3aXRoIGFkYXB0YXRpb25zIGZvciBvdXIgb3duIHdvcmtx
dWV1ZSg5KS4gU2VlIGF0dGFjaGVkLgo+Cj4gwqBUaGF0IHdvdWxkIGJlIGdyZWF0IGlmIHlvdSBj
b3VsZCB0ZXN0IHRoaXMgcGF0Y2ggYW5kIHJlcG9ydAo+IMKgc3VjY2Vzcy9mYWlsdXJlLCBJIGRv
bid0IGhhdmUgYm54KDQpIE5JQyBhdCBkaXNwb3NhbCBjdXJyZW50bHkuIERvbid0Cj4gwqBmb3Jn
ZXQgdG8ga2VlcCBESUFHTk9TVElDIG9uIGZvciB0aGUgdGVzdC4KPgo+IMKgVGhhbmtzIGZvciBy
ZXBvcnRpbmchCj4KPiDCoC0tCj4gwqBKZWFuLVl2ZXMgTWlnZW9uCj4gwqBqZWFueXZlcy5taWdl
b25AZnJlZS5mcgo+Cj4gwqAtLS0tLS0tLS0tLS0tLTAwMDEwMDAzMDIwMzAyMDcwNDA1MDAwNwo+
IMKgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwo+IMKgbmFtZT0iYm54LmRpZmYiCj4gwqBDb250
ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0Cj4gwqBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRh
Y2htZW50Owo+IMKgZmlsZW5hbWU9ImJueC5kaWZmIgo+Cj4gwqBJbmRleDogc3lzL2Rldi9wY2kv
aWZfYm54LmMKPiDCoD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KPiDCoFJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvc3lzL2Rl
di9wY2kvaWZfYm54LmMsdgo+IMKgcmV0cmlldmluZyByZXZpc2lvbiAxLjQzCj4gwqBkaWZmIC11
IC1wIC1yMS40MyBpZl9ibnguYwo+IMKgLS0tIHN5cy9kZXYvcGNpL2lmX2JueC5jIMKgIMKgIMKg
IDIgTWF5IDIwMTEgMDk6MDM6MTAgLTAwMDAgwqAgwqAgwqAgMS40Mwo+IMKgKysrIHN5cy9kZXYv
cGNpL2lmX2JueC5jIMKgIMKgIMKgIDEzIEp1bCAyMDExIDAwOjIwOjQyIC0wMDAwCj4gwqBAQCAt
Mzk3LDcgKzM5Nyw3IEBAIHZvaWQgwqAgwqAgwqAgYm54X3N0YXRzX3VwZGF0ZShzdHJ1Y3QgYm54
X3NvZnRjICoKPiDCoHZvaWQgwqBibnhfdGljayh2b2lkICopOwo+Cj4gwqBzdHJ1Y3QgcG9vbCAq
Ym54X3R4X3Bvb2wgPSBOVUxMOwo+IMKgLWludCDCoCBibnhfYWxsb2NfcGt0cyhzdHJ1Y3QgYm54
X3NvZnRjICopOwo+IMKgK3ZvaWQgwqBibnhfYWxsb2NfcGt0cyhzdHJ1Y3Qgd29yayAqLCB2b2lk
ICopOwo+Cj4gwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPiDCoC8qIE9wZW5CU0QgZGV2aWNlIGRp
c3BhdGNoIHRhYmxlLiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCAqLwo+IMKgQEAgLTcwNSw2ICs3MDUsMTMgQEAgYm54X2F0dGFj
aChkZXZpY2VfdCBwYXJlbnQsIGRldmljZV90IHNlbAo+IMKgIMKgIMKgIMKgfQo+IMKgIMKgIMKg
IMKgYXByaW50X25vcm1hbF9kZXYoc2MtPmJueF9kZXYsICJpbnRlcnJ1cHRpbmcgYXQgJXNcbiIs
IGludHJzdHIpOwo+Cj4gwqArIMKgIMKgIMKgLyogY3JlYXRlIHdvcmtxdWV1ZSB0byBoYW5kbGUg
cGFja2V0IGFsbG9jYXRpb25zICovCj4gwqArIMKgIMKgIMKgaWYgKHdvcmtxdWV1ZV9jcmVhdGUo
JnNjLT5ibnhfd3EsIGRldmljZV94bmFtZShzZWxmKSwKPiDCoCsgwqAgwqAgwqAgwqAgwqBibnhf
YWxsb2NfcGt0cywgc2MsIFBSSV9OT05FLCBJUExfTk9ORSwgV1FfTVBTQUZFKSAhPSAwKSB7Cj4g
wqArIMKgIMKgIMKgIMKgIMKgIMKgIMKgYXByaW50X2Vycm9yX2RldihzZWxmLCAiZmFpbGVkIHRv
IGNyZWF0ZSB3b3JrcXVldWVcbiIpOwo+IMKgKyDCoCDCoCDCoCDCoCDCoCDCoCDCoGdvdG8gYm54
X2F0dGFjaF9mYWlsOwo+IMKgKyDCoCDCoCDCoH0KPiDCoCsKPiDCoCDCoCDCoCDCoHNjLT5ibnhf
bWlpLm1paV9pZnAgPSBpZnA7Cj4gwqAgwqAgwqAgwqBzYy0+Ym54X21paS5taWlfcmVhZHJlZyA9
IGJueF9taWlidXNfcmVhZF9yZWc7Cj4gwqAgwqAgwqAgwqBzYy0+Ym54X21paS5taWlfd3JpdGVy
ZWcgPSBibnhfbWlpYnVzX3dyaXRlX3JlZzsKPiDCoEBAIC03OTksNiArODA2LDcgQEAgYm54X2Rl
dGFjaChkZXZpY2VfdCBkZXYsIGludCBmbGFncykKPiDCoCDCoCDCoCDCoHBtZl9kZXZpY2VfZGVy
ZWdpc3RlcihkZXYpOwo+IMKgIMKgIMKgIMKgY2FsbG91dF9kZXN0cm95KCZzYy0+Ym54X3RpbWVv
dXQpOwo+IMKgIMKgIMKgIMKgZXRoZXJfaWZkZXRhY2goaWZwKTsKPiDCoCsgwqAgwqAgwqB3b3Jr
cXVldWVfZGVzdHJveShzYy0+Ym54X3dxKTsKPgo+IMKgIMKgIMKgIMKgLyogRGVsZXRlIGFsbCBy
ZW1haW5pbmcgbWVkaWEuICovCj4gwqAgwqAgwqAgwqBpZm1lZGlhX2RlbGV0ZV9pbnN0YW5jZSgm
c2MtPmJueF9taWkubWlpX21lZGlhLCBJRk1fSU5TVF9BTlkpOwo+IMKgQEAgLTM4MzksMjEgKzM4
NDcsMjIgQEAgYm54X2dldF9idWZfZXhpdDoKPiDCoCDCoCDCoCDCoHJldHVybihyYyk7Cj4gwqB9
Cj4KPiDCoC1pbnQKPiDCoC1ibnhfYWxsb2NfcGt0cyhzdHJ1Y3QgYm54X3NvZnRjICpzYykKPiDC
oCt2b2lkCj4gwqArYm54X2FsbG9jX3BrdHMoc3RydWN0IHdvcmsgKiB1bnVzZWQsIHZvaWQgKiBh
cmcpCj4gwqB7Cj4gwqArIMKgIMKgIMKgc3RydWN0IGJueF9zb2Z0YyAqc2MgPSBhcmc7Cj4gwqAg
wqAgwqAgwqBzdHJ1Y3QgaWZuZXQgKmlmcCA9ICZzYy0+Ym54X2VjLmVjX2lmOwo+IMKgIMKgIMKg
IMKgc3RydWN0IGJueF9wa3QgKnBrdDsKPiDCoC0gwqAgwqAgwqBpbnQgaTsKPiDCoCsgwqAgwqAg
wqBpbnQgaSwgczsKPgo+IMKgIMKgIMKgIMKgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeyAvKiBt
YWdpYyEgKi8KPiDCoC0gwqAgwqAgwqAgwqAgwqAgwqAgwqBwa3QgPSBwb29sX2dldChibnhfdHhf
cG9vbCwgUFJfTk9XQUlUKTsKPiDCoCsgwqAgwqAgwqAgwqAgwqAgwqAgwqBwa3QgPSBwb29sX2dl
dChibnhfdHhfcG9vbCwgUFJfV0FJVE9LKTsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIChw
a3QgPT0gTlVMTCkKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGJyZWFrOwo+
Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAoYnVzX2RtYW1hcF9jcmVhdGUoc2MtPmJueF9k
bWF0YWcsCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBNQ0xCWVRFUyAqIEJOWF9NQVhf
U0VHTUVOVFMsIFVTQUJMRV9UWF9CRCwKPiDCoC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBN
Q0xCWVRFUywgMCwgQlVTX0RNQV9OT1dBSVQgfCBCVVNfRE1BX0FMTE9DTk9XLAo+IMKgKyDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoE1DTEJZVEVTLCAwLCBCVVNfRE1BX1dBSVRPSyB8IEJVU19E
TUFfQUxMT0NOT1csCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAmcGt0LT5wa3RfZG1h
bWFwKSAhPSAwKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZ290byBwdXQ7
Cj4KPiDCoEBAIC0zODY2LDEzICszODc1LDIzIEBAIGJueF9hbGxvY19wa3RzKHN0cnVjdCBibnhf
c29mdGMgKnNjKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgbXV0ZXhfZXhpdCgmc2MtPnR4X3Br
dF9tdHgpOwo+IMKgIMKgIMKgIMKgfQo+Cj4gwqAtIMKgIMKgIMKgcmV0dXJuIChpID09IDApID8g
RU5PTUVNIDogMDsKPiDCoCsgwqAgwqAgwqBtdXRleF9lbnRlcigmc2MtPnR4X3BrdF9tdHgpOwo+
IMKgKyDCoCDCoCDCoENMUihzYy0+Ym54X2ZsYWdzLCBCTlhfQUxMT0NfUEtUU19GTEFHKTsKPiDC
oCsgwqAgwqAgwqBtdXRleF9leGl0KCZzYy0+dHhfcGt0X210eCk7Cj4gwqArCj4gwqArIMKgIMKg
IMKgLyogZmlyZS11cCBUWCBub3cgdGhhdCBhbGxvY2F0aW9ucyBoYXZlIGJlZW4gZG9uZSAqLwo+
IMKgKyDCoCDCoCDCoHMgPSBzcGxuZXQoKTsKPiDCoCsgwqAgwqAgwqBpZiAoIUlGUV9JU19FTVBU
WSgmaWZwLT5pZl9zbmQpKQo+IMKgKyDCoCDCoCDCoCDCoCDCoCDCoCDCoGJueF9zdGFydChpZnAp
Owo+IMKgKyDCoCDCoCDCoHNwbHgocyk7Cj4gwqArCj4gwqArIMKgIMKgIMKgcmV0dXJuOwo+Cj4g
wqBzdG9wcGluZzoKPiDCoCDCoCDCoCDCoGJ1c19kbWFtYXBfZGVzdHJveShzYy0+Ym54X2RtYXRh
ZywgcGt0LT5wa3RfZG1hbWFwKTsKPiDCoHB1dDoKPiDCoCDCoCDCoCDCoHBvb2xfcHV0KGJueF90
eF9wb29sLCBwa3QpOwo+IMKgLSDCoCDCoCDCoHJldHVybiAoaSA9PSAwKSA/IEVOT01FTSA6IDA7
Cj4gwqArIMKgIMKgIMKgcmV0dXJuOwo+IMKgfQo+Cj4gwqAvKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
PiDCoEBAIC0zOTMzLDcgKzM5NTIsNyBAQCBibnhfaW5pdF90eF9jaGFpbihzdHJ1Y3QgYm54X3Nv
ZnRjICpzYykKPiDCoCDCoCDCoCDCoERCUFJJTlQoc2MsIEJOWF9WRVJCT1NFX1JFU0VULCAiRW50
ZXJpbmcgJXMoKVxuIiwgX19mdW5jX18pOwo+Cj4gwqAgwqAgwqAgwqAvKiBGb3JjZSBhbiBhbGxv
Y2F0aW9uIG9mIHNvbWUgZG1hbWFwcyBmb3IgdHggdXAgZnJvbnQgKi8KPiDCoC0gwqAgwqAgwqBi
bnhfYWxsb2NfcGt0cyhzYyk7Cj4gwqArIMKgIMKgIMKgYm54X2FsbG9jX3BrdHMoTlVMTCwgc2Mp
Owo+Cj4gwqAgwqAgwqAgwqAvKiBTZXQgdGhlIGluaXRpYWwgVFggcHJvZHVjZXIvY29uc3VtZXIg
aW5kaWNlcy4gKi8KPiDCoCDCoCDCoCDCoHNjLT50eF9wcm9kID0gMDsKPiDCoEBAIC00ODA1LDgg
KzQ4MjQsOCBAQCBibnhfaW5pdChzdHJ1Y3QgaWZuZXQgKmlmcCkKPiDCoCDCoCDCoCDCoGlmICgo
ZXJyb3IgPSBldGhlcl9tZWRpYWNoYW5nZShpZnApKSAhPSAwKQo+IMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgZ290byBibnhfaW5pdF9leGl0Owo+Cj4gwqAtIMKgIMKgIMKgaWZwLT5pZl9mbGFncyB8
PSBJRkZfUlVOTklORzsKPiDCoC0gwqAgwqAgwqBpZnAtPmlmX2ZsYWdzICY9IH5JRkZfT0FDVElW
RTsKPiDCoCsgwqAgwqAgwqBTRVQoaWZwLT5pZl9mbGFncywgSUZGX1JVTk5JTkcpOwo+IMKgKyDC
oCDCoCDCoENMUihpZnAtPmlmX2ZsYWdzLCBJRkZfT0FDVElWRSk7Cj4KPiDCoCDCoCDCoCDCoGNh
bGxvdXRfcmVzZXQoJnNjLT5ibnhfdGltZW91dCwgaHosIGJueF90aWNrLCBzYyk7Cj4KPiDCoEBA
IC00ODM5LDggKzQ4NTgsOCBAQCBibnhfdHhfZW5jYXAoc3RydWN0IGJueF9zb2Z0YyAqc2MsIHN0
cnVjCj4gwqAgwqAgwqAgwqB1X2ludDMyX3QgwqAgwqAgwqAgwqAgwqAgwqAgwqAgYWRkciwgcHJv
ZF9ic2VxOwo+IMKgIMKgIMKgIMKgaW50IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGks
IGVycm9yOwo+IMKgIMKgIMKgIMKgc3RydWN0IG1fdGFnIMKgIMKgIMKgIMKgIMKgIMKgKm10YWc7
Cj4gwqArIMKgIMKgIMKgc3RhdGljIHN0cnVjdCB3b3JrIMKgIMKgIMKgYm54X3drOyAvKiBEdW1t
eSB3b3JrLiBTdGF0aWNhbGx5IGFsbG9jYXRlZC4gKi8KPgo+IMKgLWFnYWluOgo+IMKgIMKgIMKg
IMKgbXV0ZXhfZW50ZXIoJnNjLT50eF9wa3RfbXR4KTsKPiDCoCDCoCDCoCDCoHBrdCA9IFRBSUxR
X0ZJUlNUKCZzYy0+dHhfZnJlZV9wa3RzKTsKPiDCoCDCoCDCoCDCoGlmIChwa3QgPT0gTlVMTCkg
ewo+IMKgQEAgLTQ4NDgsMTQgKzQ4NjcsMTUgQEAgYWdhaW46Cj4gwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqBtdXRleF9leGl0KCZzYy0+dHhfcGt0X210eCk7Cj4gwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gRU5FVERPV047Cj4gwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqB9Cj4gwqAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKHNjLT50eF9wa3RfY291
bnQgPD0gVE9UQUxfVFhfQkQpIHsKPiDCoC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqBtdXRleF9leGl0KCZzYy0+dHhfcGt0X210eCk7Cj4gwqAtIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgaWYgKGJueF9hbGxvY19wa3RzKHNjKSA9PSAwKQo+IMKgLSDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGdvdG8gYWdhaW47Cj4gwqAtIMKgIMKg
IMKgIMKgIMKgIMKgIMKgfSBlbHNlIHsKPiDCoC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqBtdXRleF9leGl0KCZzYy0+dHhfcGt0X210eCk7Cj4gwqArCj4gwqArIMKgIMKgIMKgIMKg
IMKgIMKgIMKgaWYgKHNjLT50eF9wa3RfY291bnQgPD0gVE9UQUxfVFhfQkQgJiYKPiDCoCsgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAhSVNTRVQoc2MtPmJueF9mbGFncywgQk5YX0FMTE9DX1BL
VFNfRkxBRykpIHsKPiDCoCsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB3b3JrcXVl
dWVfZW5xdWV1ZShzYy0+Ym54X3dxLCAmYm54X3drLCBOVUxMKTsKPiDCoCsgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqBTRVQoc2MtPmJueF9mbGFncywgQk5YX0FMTE9DX1BLVFNfRkxB
Ryk7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4gwqAtIMKgIMKgIMKgIMKgIMKgIMKgIMKg
cmV0dXJuIChFTk9NRU0pOwo+IMKgKwo+IMKgKyDCoCDCoCDCoCDCoCDCoCDCoCDCoG11dGV4X2V4
aXQoJnNjLT50eF9wa3RfbXR4KTsKPiDCoCsgwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gRU5P
TUVNOwo+IMKgIMKgIMKgIMKgfQo+IMKgIMKgIMKgIMKgVEFJTFFfUkVNT1ZFKCZzYy0+dHhfZnJl
ZV9wa3RzLCBwa3QsIHBrdF9lbnRyeSk7Cj4gwqAgwqAgwqAgwqBtdXRleF9leGl0KCZzYy0+dHhf
cGt0X210eCk7Cj4gwqBAQCAtNTA4Miw3ICs1MTAyLDcgQEAgYm54X2lvY3RsKHN0cnVjdCBpZm5l
dCAqaWZwLCB1X2xvbmcgY29tbQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogWFhYIHNldCBh
biBpZmZsYWdzIGNhbGxiYWNrIGFuZCBsZXQgZXRoZXJfaW9jdGwKPiDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCAqIGhhbmRsZSBhbGwgb2YgdGhpcy4KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAq
Lwo+IMKgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIChpZnAtPmlmX2ZsYWdzICYgSUZGX1VQKSB7
Cj4gwqArIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKElTU0VUKGlmcC0+aWZfZmxhZ3MsIElGRl9V
UCkpIHsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIChpZnAtPmlmX2Zs
YWdzICYgSUZGX1JVTk5JTkcpCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqBlcnJvciA9IEVORVRSRVNFVDsKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoGVsc2UKPiDCoEluZGV4OiBzeXMvZGV2L3BjaS9pZl9ibnh2YXIuaAo+IMKgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQo+IMKgUkNTIGZpbGU6IC9jdnNyb290L3NyYy9zeXMvZGV2L3BjaS9pZl9ibnh2YXIu
aCx2Cj4gwqByZXRyaWV2aW5nIHJldmlzaW9uIDEuMQo+IMKgZGlmZiAtdSAtcCAtcjEuMSBpZl9i
bnh2YXIuaAo+IMKgLS0tIHN5cy9kZXYvcGNpL2lmX2JueHZhci5oIMKgIMKgOSBEZWMgMjAxMCAy
MjozNDozNyAtMDAwMCDCoCDCoCDCoCAxLjEKPiDCoCsrKyBzeXMvZGV2L3BjaS9pZl9ibnh2YXIu
aCDCoCDCoDEzIEp1bCAyMDExIDAwOjIwOjQyIC0wMDAwCj4gwqBAQCAtNDYsNyArNDYsNyBAQAo+
IMKgI2luY2x1ZGUgPHN5cy9kZXZpY2UuaD4KPiDCoCNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Cj4g
wqAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgo+IMKgLS8vI2luY2x1ZGUgPHN5cy93b3JrcXVldWUu
aD4KPiDCoCsjaW5jbHVkZSA8c3lzL3dvcmtxdWV1ZS5oPgo+Cj4gwqAjaW5jbHVkZSA8bmV0L2lm
Lmg+Cj4gwqAjaW5jbHVkZSA8bmV0L2lmX2RsLmg+Cj4gwqBAQCAtMTI2LDYgKzEyNiw5IEBAIHN0
cnVjdCBibnhfc29mdGMKPgo+IMKgIMKgIMKgIMKgdm9pZCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCpibnhfaW50cmhhbmQ7IMKgIMKgIMKgIMKgIMKgLyogSW50ZXJydXB0IGhhbmRsZXIg
Ki8KPgo+IMKgKyDCoCDCoCDCoC8qIHBhY2tldCBhbGxvY2F0aW9uIHdvcmtxdWV1ZSAqLwo+IMKg
KyDCoCDCoCDCoHN0cnVjdCB3b3JrcXVldWUgwqAgwqAgwqAgwqAqYm54X3dxOwo+IMKgKwo+IMKg
IMKgIMKgIMKgLyogQVNJQyBDaGlwIElELiAqLwo+IMKgIMKgIMKgIMKgdV9pbnQzMl90IMKgIMKg
IMKgIMKgIMKgIMKgIMKgIGJueF9jaGlwaWQ7Cj4KPgo+IMKgLS0tLS0tLS0tLS0tLS0wMDAxMDAw
MzAyMDMwMjA3MDQwNTAwMDctLQo+Cj4K
From: Jean-Yves Migeon <jeanyves.migeon@free.fr>
To: =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@entel.upc.edu>
Cc: gnats-bugs@netbsd.org, jym@netbsd.org, gnats-admin@netbsd.org,
netbsd-bugs@netbsd.org
Subject: Re: kern/45051 (dom0 kernel panic with Xen41: panic: pool 'pvpl'
is IPL_NONE, but called from interrupt context)
Date: Thu, 14 Jul 2011 00:55:46 +0200
On 13.07.2011 10:25, Roger Pau Monné wrote:
> I've been testing the patch using gigabyte transfer rates for a couple
> of hours and seems to be fine. I've applied the patch against NetBSD
> 5.99.52, because newer versions seem to have problems with Xen. I will
> continue using it, and report back if I find any problems. Thanks for
> the hard work.
>
> Regards, Roger.
Alright, thanks for testing. I'll commit it it a few days unless you
report any regression with it.
Thanks again for testing.
--
Jean-Yves Migeon
jeanyves.migeon@free.fr
State-Changed-From-To: analyzed->closed
State-Changed-By: jym@NetBSD.org
State-Changed-When: Fri, 15 Jul 2011 11:32:21 +0000
State-Changed-Why:
Bug fixed with rev 1.44 of src/sys/dev/pci/if_bnx.c. Confirmed and
tested by Roger Pau Monné, roger.pau at entel.upc.edu.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.