* Re: [PATCH 5/10] [NET]: Avoid unnecessary cloning for ingress filtering
From: jamal @ 2007-10-15 13:57 UTC (permalink / raw)
To: Herbert Xu; +Cc: Patrick McHardy, David Miller, netdev, kuznet
In-Reply-To: <1192358991.4892.23.camel@localhost>
On Sun, 2007-14-10 at 06:49 -0400, jamal wrote:
> Once this patchset makes
> it into net-2.6.24 i can do testing on my laptop and provide you any
> further feedback.
Works on all 4 tests i tried out on net-2.6[1]. GoodStuff Herbert.
Herbert, please look at the comment i sent on the clone vs copy.
Also, iirc this started as a netfilter optimization thing starting with
tail-calls - can someone (Patrick?) clue me how it helps in that
optimization aspect?
cheers,
jamal
[1] Didnt try any ipt action, will when i get the chance again. Heres
test 18b):
---
Window1) tc qdisc del dev lo ingress
Window1) tc qdisc add dev lo ingress
Window1) ifconfig dummy0 up
Window1) tcpdump -n -i lo -x -e -t &
Window2) tcpdump -n -i dummy0 -x -e -t &
Window1) tc filter add dev lo parent ffff: protocol ip prio 10 u32 \
match ip dst 127.0.0.1/32 flowid 1:2 \
action pedit munge offset 0 u32 clear pipe \
action mirred egress mirror dev dummy0
Window2) ping -c 1 127.0.0.1
Ping will fail since we are clearing first 4 byte of ip header.
Window1 will show the packet as seen on incoming by lo; the first few
bytes look like:
----
4500 0054 0000 4000 4001 3ca7 7f00 0001
----
Window2 will show the 4 bytes zeroed out as requested of pedit (and as
seen on dummy0)
---
0000 0000 0000 4000 4001 3ca7 7f00 0001
---------
^ permalink raw reply
* FWD: 2.4.35 e1000 problems
From: Willy Tarreau @ 2007-10-15 13:59 UTC (permalink / raw)
To: Kok, Auke; +Cc: Brandeburg, Jesse, netdev, dmpesl
Hi,
Dmitry, I've forwarded your mail to the netdev mailing list and to
the e1000 maintainers.
Auke, does it sound like a known problem ? Maybe someone has seen it
in 2.6 ? Just for the record, e1000 in 2.4.35 is 7.3.20-k4.
Dmitry, if you have time for a test, I think it would be good if you
could test the most recent driver from e1000.sf.net. It might give
us some more information about the problem's cause. Otherwise, let's
wait for Auke's advices and/or questions.
Regards,
Willy
----- Forwarded message from dmpesl <dmpesl@ldis.cs.msu.su> -----
Date: Mon, 15 Oct 2007 17:54:01 +0400 (MSD)
From: dmpesl <dmpesl@ldis.cs.msu.su>
Subject: 2.4.35 e1000 problems
To: w@1wt.eu
X-X-Sender: dmpesl@ldisi.cs.msu.su
Hello, Willy
on recent month i've changed kernel from 2.4.31->2.4.35 on my Owl-based
web server (purchased SATA hdd, onboard SATA 20378), Asus PCH-DR mb,
2*Xeon, and noticed that following error occurs on network card:
---------------------------------------------
Sep 29 21:29:51 host kernel: NETDEV WATCHDOG: eth0: transmit timed out
Sep 29 21:29:53 host kernel: e1000: eth0: e1000_watchdog: NIC Link is Up
100 Mbps Full Duplex, Flow Control: RX/TX
Sep 29 22:28:03 host kernel: NETDEV WATCHDOG: eth0: transmit timed out
Sep 29 22:28:05 host kernel: e1000: eth0: e1000_watchdog: NIC Link is Up
100 Mbps Full Duplex, Flow Control: RX/TX
Sep 30 00:51:35 host kernel: NETDEV WATCHDOG: eth0: transmit timed out
Sep 30 00:51:37 host kernel: e1000: eth0: e1000_watchdog: NIC Link is Up
100 Mbps Full Duplex, Flow Control: RX/TX
---------------------------------------------
After some conversation with my collocation provider (changing cables and
switch port) i've searched google to same errors and found some advises to
use ethtool -k tso off, but this is not work with my kernel/distribution.
Then i swapped just e1000 driver in 2.4.35 to older, from 2.4.31.
Now everything works, without loosing link.
Regards, Dmitry
----- End forwarded message -----
^ permalink raw reply
* RE: [PATCH v2] [POWERPC] ucc_geth: Fix build break introduced by commit 09f75cd7bf13720738e6a196cc0107ce9a5bd5a0
From: Li Yang-r58472 @ 2007-10-15 14:09 UTC (permalink / raw)
To: Medve Emilian-EMMEDVE1, akpm, jgarzik, netdev, linuxppc-dev
In-Reply-To: <1192455830-1028-1-git-send-email-Emilian.Medve@Freescale.com>
> -----Original Message-----
> From: Medve Emilian-EMMEDVE1
> Sent: Monday, October 15, 2007 9:44 PM
> To: akpm@linux-foundation.org; jgarzik@pobox.com; Li
> Yang-r58472; netdev@vger.kernel.org; linuxppc-dev@ozlabs.org
> Cc: Medve Emilian-EMMEDVE1
> Subject: [PATCH v2] [POWERPC] ucc_geth: Fix build break
> introduced by commit 09f75cd7bf13720738e6a196cc0107ce9a5bd5a0
>
> drivers/net/ucc_geth.c: In function 'ucc_geth_rx':
> drivers/net/ucc_geth.c:3483: error: 'dev' undeclared (first
> use in this function)
> drivers/net/ucc_geth.c:3483: error: (Each undeclared
> identifier is reported only once
> drivers/net/ucc_geth.c:3483: error: for each function it appears in.)
> make[2]: *** [drivers/net/ucc_geth.o] Error 1
>
> Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
Acked-by: Li Yang <leoli@freescale.com>
> ---
>
> Here is a convenient link for the culprit patch:
> http://git.kernel.org/?p=linux/kernel/git/jgarzik/netdev-2.6.g
> it;a=commit;h=09f75cd7bf13720738e6a196cc0107ce9a5bd5a0
>
> netdev-2.6> scripts/checkpatch.pl
> 0001-POWERPC-ucc_geth-Fix-build-break-introduced-by-co.patch
> Your patch has no obvious style problems and is ready for submission.
>
> drivers/net/ucc_geth.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
> index d00e7d4..bec413b 100644
> --- a/drivers/net/ucc_geth.c
> +++ b/drivers/net/ucc_geth.c
> @@ -63,7 +63,7 @@
> #define UGETH_MSG_DEFAULT (NETIF_MSG_IFUP << 1 ) - 1
>
> void uec_set_ethtool_ops(struct net_device *netdev);
> -
> +
> static DEFINE_SPINLOCK(ugeth_lock);
>
> static struct {
> @@ -3454,9 +3454,12 @@ static int ucc_geth_rx(struct
> ucc_geth_private *ugeth, u8 rxQ, int rx_work_limit
> u16 length, howmany = 0;
> u32 bd_status;
> u8 *bdBuffer;
> + struct net_device * dev;
>
> ugeth_vdbg("%s: IN", __FUNCTION__);
>
> + dev = ugeth->dev;
> +
> /* collect received buffers */
> bd = ugeth->rxBd[rxQ];
>
> --
> 1.5.3.GIT
>
^ permalink raw reply
* Re: [PATCH]: SELINUX fixup for netfilter hook changes
From: James Morris @ 2007-10-15 14:20 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Stephen Smalley
In-Reply-To: <20071015.025909.77039408.davem@davemloft.net>
On Mon, 15 Oct 2007, David Miller wrote:
>
> I just noticed a warning for this in my allmodconfig build,
> so I checked in the obvious fix.
Thanks.
>
> commit d0a23b19f552c4fd0126d903078ea5ceca968617
> Author: David S. Miller <davem@sunset.davemloft.net>
> Date: Mon Oct 15 02:58:25 2007 -0700
>
> [SELINUX]: Update for netfilter ->hook() arg changes.
>
> They take a "struct sk_buff *" instead of a "struct sk_buff **" now.
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
> index 3c3fff3..cf76150 100644
> --- a/security/selinux/hooks.c
> +++ b/security/selinux/hooks.c
> @@ -3932,7 +3932,7 @@ out:
> }
>
> static unsigned int selinux_ip_postroute_last(unsigned int hooknum,
> - struct sk_buff **pskb,
> + struct sk_buff *skb,
> const struct net_device *in,
> const struct net_device *out,
> int (*okfn)(struct sk_buff *),
> @@ -3941,7 +3941,6 @@ static unsigned int selinux_ip_postroute_last(unsigned int hooknum,
> char *addrp;
> int len, err = 0;
> struct sock *sk;
> - struct sk_buff *skb = *pskb;
> struct avc_audit_data ad;
> struct net_device *dev = (struct net_device *)out;
> struct sk_security_struct *sksec;
> @@ -3977,23 +3976,23 @@ out:
> }
>
> static unsigned int selinux_ipv4_postroute_last(unsigned int hooknum,
> - struct sk_buff **pskb,
> + struct sk_buff *skb,
> const struct net_device *in,
> const struct net_device *out,
> int (*okfn)(struct sk_buff *))
> {
> - return selinux_ip_postroute_last(hooknum, pskb, in, out, okfn, PF_INET);
> + return selinux_ip_postroute_last(hooknum, skb, in, out, okfn, PF_INET);
> }
>
> #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
>
> static unsigned int selinux_ipv6_postroute_last(unsigned int hooknum,
> - struct sk_buff **pskb,
> + struct sk_buff *skb,
> const struct net_device *in,
> const struct net_device *out,
> int (*okfn)(struct sk_buff *))
> {
> - return selinux_ip_postroute_last(hooknum, pskb, in, out, okfn, PF_INET6);
> + return selinux_ip_postroute_last(hooknum, skb, in, out, okfn, PF_INET6);
> }
>
> #endif /* IPV6 */
> -
> 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
>
--
James Morris
<jmorris@namei.org>
^ permalink raw reply
* Re: [PATCH 3/3] [IPV6]: Replace sk_buff ** with sk_buff * in input handlers
From: Herbert Xu @ 2007-10-15 14:21 UTC (permalink / raw)
To: David Miller; +Cc: kaber, hadi, netdev, kuznet, yoshfuji, tgraf
In-Reply-To: <20071015.012939.36941069.davem@davemloft.net>
On Mon, Oct 15, 2007 at 01:29:39AM -0700, David Miller wrote:
> From: Herbert Xu <herbert@gondor.apana.org.au>
> Date: Sun, 14 Oct 2007 22:49:05 +0800
>
> > [IPV6]: Replace sk_buff ** with sk_buff * in input handlers
> >
> > With all the users of the double pointers removed from the IPv6 input path,
> > this patch converts all occurances of sk_buff ** to sk_buff * in IPv6 input
> > handlers.
> >
> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
>
> Also applied, thanks Herbert.
I just pulled your tree and this patch seems to be missing.
Everything else seems to be there though.
Thanks,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply
* Re: [PATCH 5/10] [NET]: Avoid unnecessary cloning for ingress filtering
From: Patrick McHardy @ 2007-10-15 14:28 UTC (permalink / raw)
To: hadi; +Cc: Herbert Xu, David Miller, netdev, kuznet
In-Reply-To: <1192456665.4336.57.camel@localhost>
jamal wrote:
> Also, iirc this started as a netfilter optimization thing starting with
> tail-calls - can someone (Patrick?) clue me how it helps in that
> optimization aspect?
Most NF_HOOK invocations look like this:
return NF_HOOK(....);
NF_HOOK does (did):
({int __ret; \
if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, \
thresh, 1)) == 1) \
__ret = (okfn)(skb); \
__ret;})
So the (okfn) invocation would allow a tail-call optimization, but gcc
doesn't do them in case the address of a local variable or parameter
is passed to an external function previously (&skb). With Herbert
patches we avoid this and gcc can generate optimized tail calls.
This in turn allows to remove the inline from the okfns without any
additional function call overhead, which avoids having two copies
of the same function in the CONFIG_NETFILTER=y case (one inlined,
one out-of-line so the address can be passed to nf_hook_slow()).
Removing just 4 inlines in net/ipv4 saved 3376 bytes of text with
CONFIG_NETFILTER=y on x86_64.
Besides that it generates better code in all netfilter code since
we don't have to constantly dereference **pskb. As a simple example
the xt_MARK target_v1() function shrinks by an entire 17 byte (or 16%)
because of this change :)
^ permalink raw reply
* Re: [PATCH v3 4/4] FEC mpc52xx: phy part of the driver\
From: Grant Likely @ 2007-10-15 14:30 UTC (permalink / raw)
To: Domen Puncer; +Cc: galak, jgarzik, linuxppc-dev, tnt, netdev
In-Reply-To: <20071015105601.GM3000@nd47.coderock.org>
On 10/15/07, Domen Puncer <domen.puncer@telargo.com> wrote:
> On 14/10/07 16:05 -0600, Grant Likely wrote:
> > On 10/14/07, Domen Puncer <domen.puncer@telargo.com> wrote:
> > > PHY part of the driver for mpc5200(b) ethernet.
> >
> > Assuming I understand correctly, this comment is not correct and this
> > patch just adds an MDIO bus driver. PHY drivers are in phylib and
> > data transfer is setup via the core driver, correct?
>
> Right.
>
> >
> > It is conceivable that the PHY is connected to an alternate MDIO bus,
> > or the MDIO bus is used for a PHY connected to an external Ethernet
> > controller.
> >
> > Speaking of which, is it possible to use this MDIO bus without the
> > core FEC being initialized?
>
> IIRC fec doesn't need any initialization for MDIO bus registers to work.
>
> >
> > > +static struct of_device_id fec_mdio_match[] = {
> > > + {
> > > + .type = "mdio",
> > > + .compatible = "mpc5200b-fec-phy",
> >
> > This is not a phy; it's an MDIO bus. Also, shouldn't this be
> > "mpc5200-..." instead of "mpc5200b-..."?
>
> Didn't know if it's ok for mpc5200, guess it is?
I believe it is.
>
> >
> > > + },
> > > + {},
> > > +};
> > > +
> > > +struct of_platform_driver mpc52xx_fec_mdio_driver = {
> > > + .name = "mpc5200b-fec-phy",
> > > + .probe = fec_mdio_probe,
> > > + .remove = fec_mdio_remove,
> > > + .match_table = fec_mdio_match,
> >
> > Inconsistent naming. Please use the same prefix on all global/static
> > symbols (ie. use "mpc52xx_mdio_" instead of the mix of
> > "mpc52xx_fec_mdio_", "fec_mdio_", etc.) I also thing that "fec_mdio_"
> > is too generic because there are a number of different incompatible
> > FEC devices.
>
> OK.
>
> >
> > > +};
> > > +
> > > +/* let fec driver call it, since this has to be registered before it */
> > > +EXPORT_SYMBOL_GPL(mpc52xx_fec_mdio_driver);
> >
> > Why not have a module_init()/module_exit() in this file? I don't
> > think the FEC driver calls this driver's functions directly anymore,
> > and it's still dependent on the of_platform bus probe order anyway.
>
> It was one way of making sure mdio driver is registered before fec.
> (and of_platform bus probe order won't work for modules)
> Nicer alternatives?
However, that assumption only works when the PHY is accessed via the
on-chip MDIO controller. What happens with a different MDIO bus is
used?
...
Need to take a look at how phylib handles the probing order problem;
but really this is something that PHYLIB needs to handle; not the FEC
driver.
> > > --- linux.git.orig/drivers/net/fec_mpc52xx/Kconfig
> > > +++ linux.git/drivers/net/fec_mpc52xx/Kconfig
> > > @@ -11,5 +11,18 @@ config FEC_MPC52xx
> > > ---help---
> > > This option enables support for the MPC5200's on-chip
> > > Fast Ethernet Controller
> > > + If compiled as module, it will be called 'fec_mpc52xx.ko'.
> >
> > Drop this line and make the help text the same format as the other eth
> > drivers in drivers/net.
>
> How exactly is it different now?
> And most of them have the "Module will be called xxx" line.
Okay, you're right. There is a real hodgepodge of help text format in
drivers/net/Kconfig. Do what seems best to you.
>
> >
> > > +
> > > +config FEC_MPC52xx_MDIO
> > > + bool "FEC MII PHY driver"
> > > + depends on FEC_MPC52xx
> > > + default y
> > > + ---help---
> > > + The MPC5200's FEC can connect to the Ethernet either with
> > > + an external MII PHY chip or 10 Mbps 7-wire interface
> > > + (Motorola? industry standard).
> > > + If your board uses an external PHY, enable this.
> >
> > Not strictly true. This enables talking to a PHY using the internal
> > MDIO controller. PHY register access could just as easily be accessed
> > via an alternate interface.
>
> Not just that is also selects which mode will it use.
> If you don't enable this, fec will be set up as 7-wire
> ( 696 rcntrl |= FEC_RCNTRL_MII_MODE;)
Looking at fec.c:
That line is dependent on priv->has_phy. priv->has_phy is set on line
949 which is conditional on the node having the property "phy-handle".
It doesn't look like it is conditional on CONFIG_FEC_MPC52xx_MDIO at
all.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* [PATCH] isdn compile fix
From: Denis V. Lunev @ 2007-10-15 14:43 UTC (permalink / raw)
To: davem; +Cc: kkeil, den, netdev
^ permalink raw reply
* [PATCH] isdn compile fix (resend)
From: Denis V. Lunev @ 2007-10-15 14:44 UTC (permalink / raw)
To: davem; +Cc: kkeil, den, netdev
Compilation fix. The problem appears after
7c076d1de869256848dacb8de0050a3a390f95df by Karsten Keil <kkeil@suse.de>
CC: Karsten Keil <kkeil@suse.de>
Signed-off-by: Denis V. Lunev <den@openvz.org>
--- ./drivers/isdn/i4l/isdn_net.c.isdn2 2007-10-15 13:55:24.000000000 +0400
+++ ./drivers/isdn/i4l/isdn_net.c 2007-10-15 18:19:11.000000000 +0400
@@ -2713,7 +2713,7 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg
case ISDN_NET_ENCAP_X25IFACE:
#ifndef CONFIG_ISDN_X25
printk(KERN_WARNING "%s: isdn-x25 support not configured\n",
- p->local->name);
+ p->dev->name);
return -EINVAL;
#else
p->dev->type = ARPHRD_X25; /* change ARP type */
^ permalink raw reply
* [PATCH] kmalloc+memset -> kzalloc in frag_alloc_queue
From: Denis V. Lunev @ 2007-10-15 14:48 UTC (permalink / raw)
To: davem; +Cc: den, netdev
kmalloc + memset -> kzalloc in frag_alloc_queue
Signed-off-by: Denis V. Lunev <den@openvz.org>
--- ./net/ipv4/ip_fragment.c.alloc 2007-10-15 13:55:25.000000000 +0400
+++ ./net/ipv4/ip_fragment.c 2007-10-15 17:47:41.000000000 +0400
@@ -144,7 +144,7 @@ static __inline__ void ip4_frag_free(str
static __inline__ struct ipq *frag_alloc_queue(void)
{
- struct ipq *qp = kmalloc(sizeof(struct ipq), GFP_ATOMIC);
+ struct ipq *qp = kzalloc(sizeof(struct ipq), GFP_ATOMIC);
if (!qp)
return NULL;
@@ -265,15 +265,10 @@ static struct ipq *ip_frag_create(struct
goto out_nomem;
qp->protocol = iph->protocol;
- qp->q.last_in = 0;
qp->id = iph->id;
qp->saddr = iph->saddr;
qp->daddr = iph->daddr;
qp->user = user;
- qp->q.len = 0;
- qp->q.meat = 0;
- qp->q.fragments = NULL;
- qp->iif = 0;
qp->peer = sysctl_ipfrag_max_dist ? inet_getpeer(iph->saddr, 1) : NULL;
/* Initialize a timer for this entry. */
--- ./net/ipv6/netfilter/nf_conntrack_reasm.c.alloc 2007-10-15 13:55:25.000000000 +0400
+++ ./net/ipv6/netfilter/nf_conntrack_reasm.c 2007-10-15 17:47:29.000000000 +0400
@@ -137,9 +137,10 @@ static void nf_frag_free(struct inet_fra
static inline struct nf_ct_frag6_queue *frag_alloc_queue(void)
{
- struct nf_ct_frag6_queue *fq = kmalloc(sizeof(struct nf_ct_frag6_queue), GFP_ATOMIC);
+ struct nf_ct_frag6_queue *fq;
- if (!fq)
+ fq = kzalloc(sizeof(struct nf_ct_frag6_queue), GFP_ATOMIC);
+ if (fq == NULL)
return NULL;
atomic_add(sizeof(struct nf_ct_frag6_queue), &nf_frags.mem);
return fq;
@@ -230,8 +231,6 @@ nf_ct_frag6_create(unsigned int hash, __
goto oom;
}
- memset(fq, 0, sizeof(struct nf_ct_frag6_queue));
-
fq->id = id;
ipv6_addr_copy(&fq->saddr, src);
ipv6_addr_copy(&fq->daddr, dst);
^ permalink raw reply
* [PATCH] gianfar: Fix regression caused by new napi interface
From: Li Yang @ 2007-10-15 15:01 UTC (permalink / raw)
To: jgarzik, netdev; +Cc: Li Yang
Protect all new napi function calls with CONFIG_GFAR_NAPI. Otherwise
the driver will stop working when CONFIG_GFAR_NAPI disabled.
Signed-off-by: Li Yang <leoli@freescale.com>
---
drivers/net/gianfar.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index c15fb1f..cc288d8 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -932,10 +932,14 @@ tx_skb_fail:
/* Returns 0 for success. */
static int gfar_enet_open(struct net_device *dev)
{
+#ifdef CONFIG_GFAR_NAPI
struct gfar_private *priv = netdev_priv(dev);
+#endif
int err;
+#ifdef CONFIG_GFAR_NAPI
napi_enable(&priv->napi);
+#endif
/* Initialize a bunch of registers */
init_registers(dev);
@@ -945,13 +949,17 @@ static int gfar_enet_open(struct net_device *dev)
err = init_phy(dev);
if(err) {
+#ifdef CONFIG_GFAR_NAPI
napi_disable(&priv->napi);
+#endif
return err;
}
err = startup_gfar(dev);
if (err)
+#ifdef CONFIG_GFAR_NAPI
napi_disable(&priv->napi);
+#endif
netif_start_queue(dev);
@@ -1105,7 +1113,9 @@ static int gfar_close(struct net_device *dev)
{
struct gfar_private *priv = netdev_priv(dev);
+#ifdef CONFIG_GFAR_NAPI
napi_disable(&priv->napi);
+#endif
stop_gfar(dev);
--
1.5.3.2.104.g41ef
^ permalink raw reply related
* Re: FWD: 2.4.35 e1000 problems
From: dmpesl @ 2007-10-15 14:25 UTC (permalink / raw)
To: Willy Tarreau; +Cc: Kok, Auke, Brandeburg, Jesse, netdev
In-Reply-To: <20071015135917.GA9608@1wt.eu>
Hi again
I can only test it, if i can compile it statically in kernel, but as i've
seen that is not possible.
That server is not completely owned by me, i'm just helping to solve some
hardware and software related problems. And i think if there will be any
problems during testing... owner/web admin of server will not be glad :)
Maybe couple of reboots... And i can not migrate to 2.6 in easy way
because of old glibc/gcc.
On Mon, 15 Oct 2007, Willy Tarreau wrote:
> Hi,
>
> Dmitry, I've forwarded your mail to the netdev mailing list and to
> the e1000 maintainers.
>
> Auke, does it sound like a known problem ? Maybe someone has seen it
> in 2.6 ? Just for the record, e1000 in 2.4.35 is 7.3.20-k4.
>
> Dmitry, if you have time for a test, I think it would be good if you
> could test the most recent driver from e1000.sf.net. It might give
> us some more information about the problem's cause. Otherwise, let's
> wait for Auke's advices and/or questions.
>
> Regards,
> Willy
>
> ----- Forwarded message from dmpesl <dmpesl@ldis.cs.msu.su> -----
>
> Date: Mon, 15 Oct 2007 17:54:01 +0400 (MSD)
> From: dmpesl <dmpesl@ldis.cs.msu.su>
> Subject: 2.4.35 e1000 problems
> To: w@1wt.eu
> X-X-Sender: dmpesl@ldisi.cs.msu.su
>
> Hello, Willy
>
> on recent month i've changed kernel from 2.4.31->2.4.35 on my Owl-based
> web server (purchased SATA hdd, onboard SATA 20378), Asus PCH-DR mb,
> 2*Xeon, and noticed that following error occurs on network card:
> ---------------------------------------------
> Sep 29 21:29:51 host kernel: NETDEV WATCHDOG: eth0: transmit timed out
> Sep 29 21:29:53 host kernel: e1000: eth0: e1000_watchdog: NIC Link is Up
> 100 Mbps Full Duplex, Flow Control: RX/TX
> Sep 29 22:28:03 host kernel: NETDEV WATCHDOG: eth0: transmit timed out
> Sep 29 22:28:05 host kernel: e1000: eth0: e1000_watchdog: NIC Link is Up
> 100 Mbps Full Duplex, Flow Control: RX/TX
> Sep 30 00:51:35 host kernel: NETDEV WATCHDOG: eth0: transmit timed out
> Sep 30 00:51:37 host kernel: e1000: eth0: e1000_watchdog: NIC Link is Up
> 100 Mbps Full Duplex, Flow Control: RX/TX
> ---------------------------------------------
> After some conversation with my collocation provider (changing cables and
> switch port) i've searched google to same errors and found some advises to
> use ethtool -k tso off, but this is not work with my kernel/distribution.
> Then i swapped just e1000 driver in 2.4.35 to older, from 2.4.31.
> Now everything works, without loosing link.
>
> Regards, Dmitry
>
> ----- End forwarded message -----
>
^ permalink raw reply
* Re: [PATCH 5/10] [NET]: Avoid unnecessary cloning for ingress filtering
From: Alexey Kuznetsov @ 2007-10-15 14:55 UTC (permalink / raw)
To: jamal; +Cc: Herbert Xu, Patrick McHardy, David Miller, netdev
In-Reply-To: <1192456665.4336.57.camel@localhost>
Hello!
> If it is causing trouble, then one idea would be to move the resetting
> to a wrapper function which calls clone first and then resets the other
> fields. All actions currently cloning would need to be mod-ed to use
> that call.
I see not so many places inside net/sched/act* where skb_clone is used.
Exactly one in act_mirred.c, to be more exact. Did I miss something?
If you mean that place, your suggestion is correct and everything is OK.
But if there is at least one place where an external skb_clone()
should do this... this cannot be correct. Tell me, it does not matter
what some random skb_clone() makes with tc_verd, please. :-)
Alexey
^ permalink raw reply
* Re: [PATCH][BNX2X] round three
From: Eliezer Tamir @ 2007-10-15 15:27 UTC (permalink / raw)
To: David Miller; +Cc: andi, netdev, jeff, mchan
In-Reply-To: <20071012.150341.41635825.davem@davemloft.net>
On Fri, 2007-10-12 at 15:03 -0700, David Miller wrote:
> From: Andi Kleen <andi@firstfloor.org>
> Date: Fri, 12 Oct 2007 16:47:28 +0200
>
> > "Eliezer Tamir" <eliezert@broadcom.com> writes:
> >
> >
> > > * For now depend on x86 or x86_64, will add more architectures ASAP.
> >
> > Why is that? Linux drivers normally should not be architecture specific.
>
> I totally agree, and the only way to weed out these kinds of
> bugs is to allow it to build on other systems so users can
> try it out and report what fails. Or even better, a motivated
> developer tries it out and fixes the bugs for you :-)
This is not a driver issue.
Unfortunately, the firmware code is different for LE and BE machines.
We had issues with the BE firmware that appear to be resolved.
Hopefully, the next version will have both.
^ permalink raw reply
* Oops in 2.6.21-rc4, 2.6.23
From: Darko K. @ 2007-10-15 15:39 UTC (permalink / raw)
To: netdev
Hello,
after recent upgrade to kernel 2.6.23 (from 2.6.20) I have started
seeing kernel oops-es in networking code. The problem is 100%
reproducible in my environment. I've seen two slightly different
backtraces but both seem to be caused by the same commit. Please
put me on Cc: on replies.
I've performed the git bisect and tracked down the problem to the
commit:
53cdcc04c1e85d4e423b2822b66149b6f2e52c2c [TCP]: Fix tcp_mem[]
initialization
Once I reverse this commit in 2.6.23 the problem goes away (this
is true also for the kernel version generated by git bisect,
2.6.21-rc4).
Description of my machine: Athlon XP1700, VIA KT-333 chipset, 512MB
RAM, VIA rhine on-board NIC. The problem appears when approximately
70% of RAM is in use and I start a large file transfer (via FTP)
from another machine on the LAN. Sample output from free command:
total used free shared buffers cached
Mem: 516508 510600 5908 0 1004 154084
-/+ buffers/cache: 355512 160996
Swap: 899600 25240 874360
Backtrace #1:
page allocation failure. order:1, mode:0x20
[<c0131581>] __alloc_pages+0x2e1/0x300
[<c0144bee>] cache_alloc_refill+0x29e/0x4b0
[<c0144e6e>] __kmalloc+0x6e/0x80
[<c0227103>] __alloc_skb+0x53/0x110
[<c024de5c>] tcp_collapse+0x1ac/0x370
[<c024e11d>] tcp_prune_queue+0xfd/0x2c0
[<c024eaad>] tcp_data_queue+0x7cd/0xbb0
[<c0225c2d>] skb_checksum+0x4d/0x2a0
[<c02504ee>] tcp_rcv_established+0x36e/0x6a0
[<c02561e4>] tcp_v4_do_rcv+0xb4/0x2a0
[<c0131379>] __alloc_pages+0xd9/0x300
[<c0258269>] tcp_v4_rcv+0x6a9/0x6c0
[<c023ddb1>] ip_local_deliver+0x91/0x110
[<c023e130>] ip_rcv+0x230/0x3c0
[<c0227103>] __alloc_skb+0x53/0x110
[<c022b742>] netif_receive_skb+0x152/0x1e0
[<c022ce6f>] process_backlog+0x6f/0xe0
[<c022cf3c>] net_rx_action+0x5c/0xf0
[<c0115af2>] __do_softirq+0x42/0x90
[<c0115b67>] do_softirq+0x27/0x30
[<c01044fd>] do_IRQ+0x3d/0x70
[<c0115818>] sys_gettimeofday+0x28/0x80
[<c0102967>] common_interrupt+0x23/0x28
=======================
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Normal per-cpu:
CPU 0: Hot: hi: 186, btch: 31 usd: 138 Cold: hi: 62, btch: 15 usd: 58
Active:92274 inactive:30728 dirty:12731 writeback:792 unstable:0
free:763 slab:4365 mapped:9796 pagetables:624 bounce:0
DMA free:2004kB min:88kB low:108kB high:132kB active:7956kB
inactive:3640kB present:16256kB pages_scanned:0
all_unreclaimable? no
lowmem_reserve[]: 0 492
Normal free:1048kB min:2792kB low:3488kB high:4188kB active:361140kB
inactive:119272kB present:503876kB pages_scanned:64
all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 1*4kB 0*8kB 1*16kB 0*32kB 1*64kB 1*128kB 1*256kB 1*512kB 1*1024kB
0*2048kB 0*4096kB = 2004kB
Normal: 0*4kB 1*8kB 1*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB
1*1024kB 0*2048kB 0*4096kB = 1048kB
Swap cache: add 17156, delete 14173, find 11/14, race 0+0
Free swap = 831072kB
Total swap = 899600kB
Free swap: 831072kB
131056 pages of RAM
0 pages of HIGHMEM
1729 reserved pages
75636 pages shared
2983 pages swap cached
12731 pages dirty
792 pages writeback
9796 pages mapped
4365 pages slab
624 pages pagetables
Backtrace #2:
klogd: page allocation failure. order:1, mode:0x4020
[<c013d442>] __alloc_pages+0x2e2/0x300
[<c01529a7>] __slab_alloc+0x177/0x400
[<e0820e07>] rhine_interrupt+0x637/0xae0 [via_rhine]
[<c015382f>] __kmalloc_track_caller+0x7f/0xb0
[<e0820e07>] rhine_interrupt+0x637/0xae0 [via_rhine]
[<c02a2737>] __alloc_skb+0x57/0x120
[<e0820e07>] rhine_interrupt+0x637/0xae0 [via_rhine]
[<c02f2e2b>] schedule+0x13b/0x2e0
[<c01368e5>] handle_IRQ_event+0x25/0x50
[<c0137df2>] handle_level_irq+0x42/0xa0
[<c0105c32>] do_IRQ+0x42/0x80
[<c018406b>] proc_reg_read+0x4b/0x70
[<c01040cf>] common_interrupt+0x23/0x28
[<c011b500>] sys_time+0x0/0x30
[<c0103f26>] syscall_call+0x7/0xb
=======================
My kernel configuration:
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21-rc4
# Sun Oct 14 15:11:07 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
#
# Loadable module support
#
# CONFIG_MODULES is not set
#
# Block layer
#
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_PARAVIRT is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MCORE2 is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
CONFIG_MK7=y
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_TSC=y
# CONFIG_HPET_TIMER is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
# CONFIG_X86_UP_APIC is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_SECCOMP is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
# CONFIG_KEXEC is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_COMPAT_VDSO=y
#
# Power management options (ACPI, APM)
#
# CONFIG_PM is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
# CONFIG_PNP is not set
# CONFIG_PNPACPI is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
#
# Misc devices
#
# CONFIG_IBM_ASM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_CMD640 is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_NETLINK is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
# CONFIG_ATA is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Macintosh device drivers
#
# CONFIG_MAC_EMUMOUSEBTN is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# PHY device support
#
# CONFIG_PHYLIB is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
CONFIG_VIA_RHINE=y
CONFIG_VIA_RHINE_MMIO=y
# CONFIG_VIA_RHINE_NAPI is not set
# CONFIG_SC92031 is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set
#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Hardware Monitoring support
#
# CONFIG_HWMON is not set
# CONFIG_HWMON_VID is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_USB_DABUSB is not set
#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# CONFIG_FB is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
# CONFIG_VIDEO_SELECT is not set
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
# CONFIG_SOUND is not set
#
# HID Devices
#
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_SL811_HCD is not set
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# may also be needed; see USB_STORAGE Help for more information
#
# CONFIG_USB_LIBUSUAL is not set
#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
# CONFIG_USB_GTCO is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_MON is not set
#
# USB port drivers
#
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
#
# USB DSL modem support
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# LED devices
#
# CONFIG_NEW_LEDS is not set
#
# LED drivers
#
#
# LED Triggers
#
#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set
#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
# CONFIG_EDAC is not set
#
# Real Time Clock
#
# CONFIG_RTC_CLASS is not set
#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set
#
# DMA Clients
#
#
# DMA Devices
#
#
# Auxiliary Display support
#
#
# Virtualization
#
# CONFIG_KVM is not set
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_EARLY_PRINTK=y
CONFIG_DOUBLEFAULT=y
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
# CONFIG_CRYPTO is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y
Regards,
Darko
^ permalink raw reply
* Re: tcp bw in 2.6
From: Stephen Hemminger @ 2007-10-15 15:49 UTC (permalink / raw)
To: Daniel Schaffrath
Cc: Larry McVoy, Herbert Xu, torvalds, davem, wscott, Linux NetDev
In-Reply-To: <2CA039DF-4BE6-453F-AB61-C3D206E6D573@mac.com>
On Mon, 15 Oct 2007 14:40:25 +0200
Daniel Schaffrath <danielschaffrath@mac.com> wrote:
> On 2007/10/02 , at 18:47, Stephen Hemminger wrote:
>
> > On Tue, 2 Oct 2007 09:25:34 -0700
> > lm@bitmover.com (Larry McVoy) wrote:
> >
> >>> If the server side is the source of the data, i.e, it's transfer
> >>> is a
> >>> write loop, then I get the bad behaviour.
> >>> ...
> >>> So is this a bug or intentional?
> >>
> >> For whatever it is worth, I believed that we used to get better
> >> performance
> >> from the same hardware. My guess is that it changed somewhere
> >> between
> >> 2.6.15-1-k7 and 2.6.18-5-k7.
> >
> > For the period from 2.6.15 to 2.6.18, the kernel by default enabled
> > TCP
> > Appropriate Byte Counting. This caused bad performance on
> > applications that
> > did small writes.
> Stephen, maybe you can provide me with some specifics here?
>
> Thanks a lot!!
> Daniel
>
Read the RFC3465 for explanation of TCP ABC.
What happens is that applications that do multiple small writes
will end up using up their window. Typically these applications are not
streaming enough data to grow the congestion window so they get held
after 4 writes until an ACK comes back. The fix for the application
(which also helps on all OS's and TCP versions as well) is to use a call
like writev() or sendmsg() to aggregate the small header blocks together
into a single send.
--
Stephen Hemminger <shemminger@linux-foundation.org>
^ permalink raw reply
* Re: [NOT VERY SAFE] [TCP]: Set initial_ssthresh default to zero in Cubic and BIC.
From: Stephen Hemminger @ 2007-10-15 15:55 UTC (permalink / raw)
To: Komuro; +Cc: shemminger, netdev, linux-kernel
In-Reply-To: <20071015215949.50399c00.komurojun-mbn@nifty.com>
On Mon, 15 Oct 2007 21:59:49 +0900
Komuro <komurojun-mbn@nifty.com> wrote:
> Dear shemminger
>
> >In which case it is zero because that is the default value.
>
> The default value of snd_ssthresh is 0x7fffffff, isn't it?
>
> [linux/net/ipv4/tcp_ipv4.c]
> static int tcp_v4_init_sock(struct sock *sk)
> ...
> tp->snd_ssthresh = 0x7fffffff; /* Infinity */
> ...
>
> Best Regards
> Komuro
>
>
Yes that value means that TCP stays in slow start until the first loss.
This makes TCP behave as expected in the RFC's.
--
Stephen Hemminger <shemminger@linux-foundation.org>
^ permalink raw reply
* [PATCH] [TCP]: Make snd_cwnd_cnt 32-bit
From: Ilpo Järvinen @ 2007-10-15 15:57 UTC (permalink / raw)
To: David Miller; +Cc: Netdev
[-- Attachment #1: Type: TEXT/PLAIN, Size: 976 bytes --]
Very little point of having 32-bit snd_cnwd if this is not
32-bit as well, as a number of snd_cwnd incrementation formulas
assume that snd_cwnd_cnt can be at least as large as snd_cwnd.
Whether 32-bit is useful was discussed when e0ef57cc56c3c96
was made:
http://marc.info/?l=linux-netdev&m=117218144409825&w=2
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
---
include/linux/tcp.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index c5b94c1..997b349 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -315,7 +315,7 @@ struct tcp_sock {
*/
u32 snd_ssthresh; /* Slow start size threshold */
u32 snd_cwnd; /* Sending congestion window */
- u16 snd_cwnd_cnt; /* Linear increase counter */
+ u32 snd_cwnd_cnt; /* Linear increase counter */
u32 snd_cwnd_clamp; /* Do not allow snd_cwnd to grow above this */
u32 snd_cwnd_used;
u32 snd_cwnd_stamp;
--
1.5.0.6
k i.
^ permalink raw reply related
* Re: [PATCH] e1000e: fix debugging printout code
From: Joe Perches @ 2007-10-15 16:00 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Auke Kok, netdev
In-Reply-To: <47067A2F.5020603@garzik.org>
On Fri, 2007-10-05 at 13:53 -0400, Jeff Garzik wrote:
> > diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h
> > index 848217a..aa82f1a 100644
> > --- a/drivers/net/e1000e/hw.h
> > +++ b/drivers/net/e1000e/hw.h
> > @@ -852,7 +852,7 @@ struct e1000_hw {
> >
> > #ifdef DEBUG
> > #define hw_dbg(hw, format, arg...) \
> > - printk(KERN_DEBUG, "%s: " format, e1000_get_hw_dev_name(hw), ##arg);
> > + printk(KERN_DEBUG, "%s: " format, e1000e_get_hw_dev_name(hw), ##arg);
>
> I will apply this, but, I strongly encourage deletion of this in favor
> of the existing dev_dbg()
Instead the fix should be for the 2 existing bugs on macro:
o Comma after KERN_DEBUG
o Semicolon in macro
^ permalink raw reply
* [PATCH V7 0/8] net/bonding: ADD IPoIB support for the bonding driver
From: Moni Shoua @ 2007-10-15 16:00 UTC (permalink / raw)
To: jgarzik, fubar, rdreier; +Cc: netdev, general
This is the 7th version of this patch series. See link to V6 below.
Changes from the previous version
---------------------------------
* Some patches required modifications to remove offsets so they can be applied with git-apply
* Patch #3 was first modified by Jay and later by me to make it work with header_ops
* patch #8 was changed to fix the problem that caused 'ifconfig down' to stuck (dev_close was called twice)
Jay,
I removed the Acked-by lines from patches 3 & 8. Can you please add them back after you approve?
thanks
MoniS
Link to V6:
http://lists.openfabrics.org/pipermail/general/2007-September/041139.html
^ permalink raw reply
* Re: [PATCH] isdn compile fix (resend)
From: Karsten Keil @ 2007-10-15 16:02 UTC (permalink / raw)
To: Denis V. Lunev; +Cc: davem, kkeil, netdev
In-Reply-To: <20071015144456.GA959@iris.sw.ru>
On Mon, Oct 15, 2007 at 06:44:56PM +0400, Denis V. Lunev wrote:
Compilation fix. The problem appears after
7c076d1de869256848dacb8de0050a3a390f95df by Karsten Keil <kkeil@suse.de>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Denis V. Lunev <den@openvz.org>
--- ./drivers/isdn/i4l/isdn_net.c.isdn2 2007-10-15 13:55:24.000000000 +0400
+++ ./drivers/isdn/i4l/isdn_net.c 2007-10-15 18:19:11.000000000 +0400
@@ -2713,7 +2713,7 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg
case ISDN_NET_ENCAP_X25IFACE:
#ifndef CONFIG_ISDN_X25
printk(KERN_WARNING "%s: isdn-x25 support not configured\n",
- p->local->name);
+ p->dev->name);
return -EINVAL;
#else
p->dev->type = ARPHRD_X25; /* change ARP type */
--
Karsten Keil
SuSE Labs
ISDN and VOIP development
SUSE LINUX Products GmbH, Maxfeldstr.5 90409 Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg)
^ permalink raw reply
* [ofa-general] [PATCH V7 1/8] IB/ipoib: Bound the net device to the ipoib_neigh structue
From: Moni Shoua @ 2007-10-15 16:03 UTC (permalink / raw)
To: jgarzik, fubar, rdreier; +Cc: netdev, general
In-Reply-To: <47138EB7.40703@gmail.com>
IPoIB uses a two layer neighboring scheme, such that for each struct neighbour
whose device is an ipoib one, there is a struct ipoib_neigh buddy which is
created on demand at the tx flow by an ipoib_neigh_alloc(skb->dst->neighbour)
call.
When using the bonding driver, neighbours are created by the net stack on behalf
of the bonding (master) device. On the tx flow the bonding code gets an skb such
that skb->dev points to the master device, it changes this skb to point on the
slave device and calls the slave hard_start_xmit function.
Under this scheme, ipoib_neigh_destructor assumption that for each struct
neighbour it gets, n->dev is an ipoib device and hence netdev_priv(n->dev)
can be casted to struct ipoib_dev_priv is buggy.
To fix it, this patch adds a dev field to struct ipoib_neigh which is used
instead of the struct neighbour dev one, when n->dev->flags has the
IFF_MASTER bit set.
Signed-off-by: Moni Shoua <monis at voltaire.com>
Signed-off-by: Or Gerlitz <ogerlitz at voltaire.com>
Acked-by: Roland Dreier <rdreier@cisco.com>
---
drivers/infiniband/ulp/ipoib/ipoib.h | 4 +++-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 24 +++++++++++++++---------
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 3 ++-
3 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index 6545fa7..1b3327a 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -349,6 +349,7 @@ #endif
struct sk_buff_head queue;
struct neighbour *neighbour;
+ struct net_device *dev;
struct list_head list;
};
@@ -365,7 +366,8 @@ static inline struct ipoib_neigh **to_ip
INFINIBAND_ALEN, sizeof(void *));
}
-struct ipoib_neigh *ipoib_neigh_alloc(struct neighbour *neigh);
+struct ipoib_neigh *ipoib_neigh_alloc(struct neighbour *neigh,
+ struct net_device *dev);
void ipoib_neigh_free(struct net_device *dev, struct ipoib_neigh *neigh);
extern struct workqueue_struct *ipoib_workqueue;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index e072f3c..cae026c 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -517,7 +517,7 @@ static void neigh_add_path(struct sk_buf
struct ipoib_path *path;
struct ipoib_neigh *neigh;
- neigh = ipoib_neigh_alloc(skb->dst->neighbour);
+ neigh = ipoib_neigh_alloc(skb->dst->neighbour, skb->dev);
if (!neigh) {
++dev->stats.tx_dropped;
dev_kfree_skb_any(skb);
@@ -817,6 +817,13 @@ static void ipoib_neigh_cleanup(struct n
unsigned long flags;
struct ipoib_ah *ah = NULL;
+ neigh = *to_ipoib_neigh(n);
+ if (neigh) {
+ priv = netdev_priv(neigh->dev);
+ ipoib_dbg(priv, "neigh_destructor for bonding device: %s\n",
+ n->dev->name);
+ } else
+ return;
ipoib_dbg(priv,
"neigh_cleanup for %06x " IPOIB_GID_FMT "\n",
IPOIB_QPN(n->ha),
@@ -824,13 +831,10 @@ static void ipoib_neigh_cleanup(struct n
spin_lock_irqsave(&priv->lock, flags);
- neigh = *to_ipoib_neigh(n);
- if (neigh) {
- if (neigh->ah)
- ah = neigh->ah;
- list_del(&neigh->list);
- ipoib_neigh_free(n->dev, neigh);
- }
+ if (neigh->ah)
+ ah = neigh->ah;
+ list_del(&neigh->list);
+ ipoib_neigh_free(n->dev, neigh);
spin_unlock_irqrestore(&priv->lock, flags);
@@ -838,7 +842,8 @@ static void ipoib_neigh_cleanup(struct n
ipoib_put_ah(ah);
}
-struct ipoib_neigh *ipoib_neigh_alloc(struct neighbour *neighbour)
+struct ipoib_neigh *ipoib_neigh_alloc(struct neighbour *neighbour,
+ struct net_device *dev)
{
struct ipoib_neigh *neigh;
@@ -847,6 +852,7 @@ struct ipoib_neigh *ipoib_neigh_alloc(st
return NULL;
neigh->neighbour = neighbour;
+ neigh->dev = dev;
*to_ipoib_neigh(neighbour) = neigh;
skb_queue_head_init(&neigh->queue);
ipoib_cm_set(neigh, NULL);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 827820e..9bcfc7a 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -705,7 +705,8 @@ out:
if (skb->dst &&
skb->dst->neighbour &&
!*to_ipoib_neigh(skb->dst->neighbour)) {
- struct ipoib_neigh *neigh = ipoib_neigh_alloc(skb->dst->neighbour);
+ struct ipoib_neigh *neigh = ipoib_neigh_alloc(skb->dst->neighbour,
+ skb->dev);
if (neigh) {
kref_get(&mcast->ah->ref);
^ permalink raw reply related
* Re: [PATCH][BNX2X] round three
From: Andi Kleen @ 2007-10-15 16:05 UTC (permalink / raw)
To: Eliezer Tamir; +Cc: David Miller, andi, netdev, jeff, mchan
In-Reply-To: <1192462049.29746.158.camel@eliezer>
> This is not a driver issue.
> Unfortunately, the firmware code is different for LE and BE machines.
> We had issues with the BE firmware that appear to be resolved.
> Hopefully, the next version will have both.
If the firmware is big it might be better to just add the necessary
conversions to the driver and always use BE. Endian conversions
tend to be very cheap.
Also we probably should have BE/LE Kconfig symbol for this to handle such
cases more elegantly in the future.
-Andi
^ permalink raw reply
* Re: [ofa-general] [PATCH V7 0/8] net/bonding: ADD IPoIB support for the bonding driver
From: Moni Shoua @ 2007-10-15 16:08 UTC (permalink / raw)
To: Moni Shoua; +Cc: netdev, rdreier, fubar, jgarzik, general
In-Reply-To: <47138EB7.40703@gmail.com>
Moni Shoua wrote:
> This is the 7th version of this patch series. See link to V6 below.
>
I forgot to mention that the patches are relative to jgarzik/netdev-2.6.git#master.
I couldn't compile the 2.6.24 or the upstream branches so I used master branch to test the fixes.
^ permalink raw reply
* [ofa-general] [PATCH V7 2/8] IB/ipoib: Verify address handle validity on send
From: Moni Shoua @ 2007-10-15 16:09 UTC (permalink / raw)
To: jgarzik, fubar, rdreier; +Cc: netdev, general
In-Reply-To: <47138EB7.40703@gmail.com>
When the bonding device senses a carrier loss of its active slave it replaces
that slave with a new one. In between the times when the carrier of an IPoIB
device goes down and ipoib_neigh is destroyed, it is possible that the
bonding driver will send a packet on a new slave that uses an old ipoib_neigh.
This patch detects and prevents this from happenning.
Signed-off-by: Moni Shoua <monis at voltaire.com>
Signed-off-by: Or Gerlitz <ogerlitz at voltaire.com>
Acked-by: Roland Dreier <rdreier@cisco.com>
---
drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index cae026c..362610d 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -692,9 +692,10 @@ static int ipoib_start_xmit(struct sk_bu
goto out;
}
} else if (neigh->ah) {
- if (unlikely(memcmp(&neigh->dgid.raw,
+ if (unlikely((memcmp(&neigh->dgid.raw,
skb->dst->neighbour->ha + 4,
- sizeof(union ib_gid)))) {
+ sizeof(union ib_gid))) ||
+ (neigh->dev != dev))) {
spin_lock(&priv->lock);
/*
* It's safe to call ipoib_put_ah() inside
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox