From patchwork Thu Jun 10 16:00:09 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 55233 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id E0C7AB7D6D for ; Fri, 11 Jun 2010 02:00:21 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752819Ab0FJQAP (ORCPT ); Thu, 10 Jun 2010 12:00:15 -0400 Received: from mail-ew0-f223.google.com ([209.85.219.223]:57382 "EHLO mail-ew0-f223.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750989Ab0FJQAO (ORCPT ); Thu, 10 Jun 2010 12:00:14 -0400 Received: by ewy23 with SMTP id 23so51177ewy.1 for ; Thu, 10 Jun 2010 09:00:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:cc :in-reply-to:references:content-type:date:message-id:mime-version :x-mailer:content-transfer-encoding; bh=oD7u8RPbliosE/Jz9MM6CuTp/E/TSyCKSCDvPhlhouk=; b=oeUm1XhwktKwGNKOlw2keedX7Bo93yn2uYFyIhcaW9pkkouF4ueuQW+hRB8zPqEZ5L t2tSRuuQwONepvxiuKcI1jWQ95yjP3G72D/k0KmvGvT5wR/kiLUgrRt2fio+CQlwg3ai dU8v/it90SxO5qnTD9xUAnTvIhB2tTcSaGqkM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; b=gG5//GwRdr+A+bfBpvJjvzjppP8qTm+dKYlvyH1VZZO0A8+LgFenfWPsT8UJxEhrKp nwHPjKDZ9dw3h6jI/t+kUskUUXaEKdhuyJ4DVDfcTbXPFp6Vv1DMueq7g6LUf8IF7W2H 43H4I5GK0xaypffs5Y4DY+cX1khHfGmc16abM= Received: by 10.216.90.210 with SMTP id e60mr552753wef.80.1276185612229; Thu, 10 Jun 2010 09:00:12 -0700 (PDT) Received: from [127.0.0.1] ([85.17.35.125]) by mx.google.com with ESMTPS id w27sm92859weq.22.2010.06.10.09.00.10 (version=SSLv3 cipher=RC4-MD5); Thu, 10 Jun 2010 09:00:11 -0700 (PDT) Subject: Re: BUG: unable to handle kernel paging request at 000041ed00000001 From: Eric Dumazet To: Arturas Cc: netdev@vger.kernel.org In-Reply-To: <9D7251E7-0EFD-4645-BC30-A96191D1046E@res.lt> References: <9D7251E7-0EFD-4645-BC30-A96191D1046E@res.lt> Date: Thu, 10 Jun 2010 18:00:09 +0200 Message-ID: <1276185609.2448.12.camel@edumazet-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Le jeudi 10 juin 2010 à 16:45 +0300, Arturas a écrit : > Hello, > > I'm not sure if i'm writing to right mailling list, but i hope I am. I'm doing > bonding, bridging and traffic shaping on linux. With such setup i have no > panics for a few days. But when I add ip address on br0, assign bridge > interface and ip address to different routing table and using iptables n > at REDIRECT I'm getting an oops (see attachment). An oops triggers only > after some traffic. Dmesg and .config also attached. I don't know is it > enough information for you, but if not, just say what I should do to get > more information and i'll try. Older kernels have deadlocks for such setup > except bridge routing, so I can't try older kernels (>=2.6.32). If someone is interested i can write call traces. > > Bonding is not multiqueue aware right now and someone promised to make it mq aware > (not just patch bonding with netdev_alloc_mq). Maybe someone knows what is a status? I can test patches. > > Performance tips for .config are very welcome. > > -- > Arturas > > > This is right mailing list :) I would try following patch for 2.6.34, not blindly trusting sk_tx_queue_get(sk) --- 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 --- net/core/dev.c.orig 2010-06-10 17:52:17.000000000 +0200 +++ net/core/dev.c 2010-06-10 17:54:56.000000000 +0200 @@ -1958,12 +1958,10 @@ static inline u16 dev_cap_txqueue(struct net_device *dev, u16 queue_index) { if (unlikely(queue_index >= dev->real_num_tx_queues)) { - if (net_ratelimit()) { - WARN(1, "%s selects TX queue %d, but " - "real number of TX queues is %d\n", - dev->name, queue_index, - dev->real_num_tx_queues); - } + WARN_ONCE("%s selects TX queue %d, but " + "real number of TX queues is %d\n", + dev->name, queue_index, + dev->real_num_tx_queues); return 0; } return queue_index; @@ -1977,6 +1975,7 @@ if (sk_tx_queue_recorded(sk)) { queue_index = sk_tx_queue_get(sk); + queue_index = dev_cap_txqueue(dev, queue_index); } else { const struct net_device_ops *ops = dev->netdev_ops;