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:

NetBSD Home
NetBSD PR Database Search

(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.