[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49841738.7050605@cosmosbay.com>
Date: Sat, 31 Jan 2009 10:17:44 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Evgeniy Polyakov <zbr@...emap.net>
CC: Stephen Hemminger <shemminger@...tta.com>,
Herbert Xu <herbert@...dor.apana.org.au>, berrange@...hat.com,
et-mgmt-tools@...hat.com, davem@...emloft.net,
netdev@...r.kernel.org
Subject: Re: virt-manager broken by bind(0) in net-next.
Evgeniy Polyakov a écrit :
> On Fri, Jan 30, 2009 at 06:52:24PM -0800, Stephen Hemminger (shemminger@...tta.com) wrote:
>> My working hypothesis is:
>> 1. Something about Evgeniy's patch makes IPV6 (actually IPV4 in IPV6) be
>> preferred over plain IPV4.
>> 2. Vino server (VNC) doesn't think ::ffff::127.0.0.1 is really the localhost
>> 3. protocol gets screwed up after that.
>>
>> It is probably reproducible with other services that support IPV6.
>
> getaddrinfo() returns list of addresses and IPv6 was the first one iirc.
> Previously it bailed out, but with my change it will try again without
> reason for doing this. With the patch I sent based on Eric's observation
> things should be fine.
>
Problem is your patch is wrong Evgeniy, please think about it litle bit more
and resubmit it.
Take the time to run this $0.02 program, before and after your upcoming fix :
$ cat size.c
#include <net/inet_hashtables.h>
extern int printf(const char *, ...);
int main(int argc, char *argv[])
{
printf("offsetof(struct inet_hashinfo, bsockets)=0x%x\n",
offsetof(struct inet_hashinfo, bsockets));
return 0;
}
$ make size.o ; gcc -o size size.o ; ./size
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CALL scripts/checksyscalls.sh
CC size.o
offsetof(struct inet_hashinfo, bsockets)=0x18
offset of bsockets being 0x18 or 0x20 is same result : bad because in
same cache line than ehash, ehash_locks, ehash_size, ehash_locks_mask,
bhash, bhash_size, unless your cpu is a Pentium.
Also, I suggest you change bsockets to something more appropriate, eg a
percpu counter.
Thank you.
Eric
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists