Re: [take22 0/4] kevent: Generic event handling mechanism.
On Fri, Nov 03, 2006 at 07:49:16PM +0100, Oleg Verych ([EMAIL PROTECTED]) wrote: applications can be found on project's homepage. There is a link to archive there, where you can find plenty of sources. But no single makefile. Or what CC and options do not mater really? You can easily find in your server's apache logs, my visit of that archive in the day of my message (today i just confirmed my assertions): browser lynx, host flower.upol.cz. If you can not compile that sources, than you should not use kevent for a while. Definitely. Options are pretty simple: -W -Wall -I$(path_to_kernel_tree)/include You likely do not know, but it is a bit risky business to patch all existing applications to show that approach is correct, if implementation is not completed. Fortunately to me, `lighthttpd' is real-life *and* in the benchmark area also. Just see that site how much there was measured: different OSes, special tunning. *That* is i'm talking about. Epoll _wrapper_ there, is 3461 byte long, your answer to _me_ 2580. People are bringing you a test bed, with all set up ready to use; need less code, go on, comment needless out! So what? People bring me tons of various stuff, and I prefer to use my own for tests. If _you_ need it, _you_ can always patch any sources you like. You likely do not know, but after I first time announced kevents in February I changed interfaces 4 times - and it is just interfaces, not including numerous features added/removed by developer's requests. I think that called open source, linux kernel case. You missed the point - I'm not going to patch tons of existing applications when I'm asked to change an interface once per month. When all requested features are implemented I definitely with patch some popular web-server to show how kevent is used. There were some comments about laking much of such programs, answers were was in prev. e-mail, need to update them, something like that. Trivial web server sources url, mentioned in benchmark isn't pointed in patch advertisement. If it was, should i actually try that new *trivial* wheel? Answer is trivial - there is archive where one can find a source code (filenames are posted regulary). Should I create a rpm? For what glibc version? Hmm. Let me answer on that dup with stuff from LKML archive. That will reveal, that my guesses were told by The Big Jury to you already: [^0] Message-ID: [EMAIL PROTECTED] [^1] Message-ID: [EMAIL PROTECTED], Message-ID: [EMAIL PROTECTED] more than 10 takes ago. And? Please provide a link to archive. Saying that, i want to give you some short examples, i know. *Linux kernel - userspace*: o Alexey Kuznetsov networking - (excellent) iproute set of utilities; iproute documentation was way too bad when Alexey presented it first time :) As example, after have read some books on TCP/IP and Ethernet, internal help of `ip' was all i needed to know. :)) i.e. it is ok for you to 'read some books on TCP/IP and Ethernet' to understand how utility works, and it is not ok to determine how to compile my sources? Do not compile my sources. Btw, show me splice() 'shiny' application? Does lighttpd use it? Or move_pages(). You know who proposed that, and you know how many (few) releases ago. And why lighttpd still do not use it? You should start to blame authors of the splice() for that. You will not? Then I can not consider your words in my direction as serious. To make a little hint to you, Evgeniy, why don't you find a little animal in the open source zoo to implement little interface to proposed kernel subsystem and then show it to The Big Jury (not me), we have here? And i can not see, how you've managed to implement something like that having almost nothing on the test basket. Very *suspicious* ch. There are always people who do not like something, what can I do with I didn't think, that my message was offensive. Also i didn't even say, that you have not bothered feed your code to scripts/Lindent. You do not use kevent, why do you care about indent of the userspace tools? [] I created trivial web servers, which send single static page and use various event handling schemes, and I test new subsystem with new tools, when tests are completed and all requested features are implemented it is time to work on different more complex users. Please, see [^0], So let's at least complete what we have right now, so no developer's efforts could be wasted writing empty chars in various places. and [^1]. [ Please do not answer just to answer, cc list is big, no one from ] [ The Big Jury seems to care. (well, Jonathan does, but he wasn't in cc) ] This thread is just to answer for the sake of answers - there is completely no sense in it. You blame me that I did not create some benchmarks you like, but I do not care about it. I created usefull patch and test is in the
Re: pktgen patch available for perusal.
On Wed, 2006-01-11 at 11:11 -0800, Ben Greear wrote: I'd be thrilled to have the receive logic go into pktgen, even if it was #if 0 with a comment showing how to patch dev.c to get it working. It would make my out-of-tree patch smaller and should help others who are doing research and driver development... I use pktgen extensively these days for ipsec testing. I also record stats for pkts i receive using a tc action drop. Very simple and works great. Ben, you keep insisting on doing this hook (every 3 months) because you dont want to invest time to do it with netlink (I thought you sold this as part of your product - the investment of your time is really not that high). If you tell me what the packet trigger is, I will send you a script ;- Robert, I have started writing some generic netlink messaging to replace the /proc that i will send your way. I need to get consensus on some tunnel-mode IPSEC patches first then i will send the about three patchsets your way (to replace the old ones i sent earlier). cheers, jamal - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
netdev quiet or just me?
I am browsing through my local netdev archive and dont see anything posted since Nov/02. Last message was: -- From: Meelis Roos [EMAIL PROTECTED] To: David Miller [EMAIL PROTECTED] Cc: netdev@vger.kernel.org Subject: Re: [PATCH] warning in SCTP Date: Thu, 2 Nov 2006 10:22:20 +0200 (EET) (03:22 EST) --- what gives? cheers, jamal - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: netdev quiet or just me?
jamal a écrit : I am browsing through my local netdev archive and dont see anything posted since Nov/02. Well, according to http://marc.theaimsgroup.com/?l=linux-netdevr=1b=200611w=1 Some messages were in flight yesterday... (I even received a copy of them :) ) Eric - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: netdev quiet or just me?
On Sat, 2006-04-11 at 14:32 +0100, Eric Dumazet wrote: Some messages were in flight yesterday... (I even received a copy of them :) ) Ok, it seems this is happening to me on another list as well. So not just netdev. My ISP is at it again. I got your email CCed to me but not the one echoed to netdev. Thanks for responding Eric. cheers, jamal - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [Info]d80211 : Understanding d80211
On 11/4/06, Larry Finger [EMAIL PROTECTED] wrote: Udayan Singh wrote: Hi, I wanted to understand the code of d80211 (thanks to James Ketrenos for the info he provided) and also work in it. I found that I can get the latest patches regarding the same from : http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/ Wireless-2.6 contains the developmental version of wireless code _NOT_ using d80211. The d80211 development version is at git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-dev.git and must be downloaded with git, not ftp or http. ok. Any docs that I can read through that you would recommend from where I can start up ? Only the code AFAIK. referring to the standards might be good i.e. 802.11 standards ?? I intend to work in the manner: 1. There are quite many standards that have already been implemented e.g. 802.11a/b/g in the kernel (here wireless-dev). If there is a new standard wrt. 802.11x coming in, then I can work on same. 2. Work on an already implemented standard and try to add a missing feaature into it. Kindly let me know your opinions. tia, Udayan Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: pktgen patch available for perusal.
jamal wrote: On Wed, 2006-01-11 at 11:11 -0800, Ben Greear wrote: I'd be thrilled to have the receive logic go into pktgen, even if it was #if 0 with a comment showing how to patch dev.c to get it working. It would make my out-of-tree patch smaller and should help others who are doing research and driver development... I use pktgen extensively these days for ipsec testing. I also record stats for pkts i receive using a tc action drop. Very simple and works great. Ben, you keep insisting on doing this hook (every 3 months) because you dont want to invest time to do it with netlink (I thought you sold this as part of your product - the investment of your time is really not that high). If you tell me what the packet trigger is, I will send you a script ;- Please do send a script. I match based on this method below. Probably you only need the part that checks for the MAGIC, the rest can be in a method called after you match in your script? /* Returns 0 if the skb is not a pktgen buffer. */ int pktgen_receive(struct sk_buff* skb) { /* See if we have a pktgen packet */ /* TODO: Add support for detecting IPv6, TCP packets too. This will only * catch UDP at the moment. --Ben */ /*printk(pktgen-rcv, skb-len: %d\n, skb-len);*/ if ((skb-len = (20 + 8 + sizeof(struct pktgen_hdr))) (skb-protocol == __constant_htons(ETH_P_IP))) { struct pktgen_hdr* pgh; /* It's IP, and long enough, lets check the magic number. * TODO: This is a hack not always guaranteed to catch the right * packets. */ /*printk(Length protocol passed, skb-data: %p, raw: %p\n, skb-data, skb-h.raw);*/ pgh = (struct pktgen_hdr*)(skb-data + 20 + 8); /* tmp = (char*)(skb-data); for (i = 0; i90; i++) { printk(%02hx , tmp[i]); if (((i + 1) % 15) == 0) { printk(\n); } } printk(\n); */ if (pgh-pgh_magic == __constant_ntohl(PKTGEN_MAGIC)) { struct net_device* dev = skb-dev; struct pktgen_dev* pkt_dev; __u32 seq = ntohl(pgh-seq_num); // TODO: Need lock..maybe pkt_dev = dev-pkt_dev; if (!pkt_dev) { return -1; } pkt_dev-pkts_rcvd++; pkt_dev-bytes_rcvd += ((skb-tail - skb-mac.raw) + 4); /* +4 for the checksum */ /* Check for out-of-sequence packets */ if (pkt_dev-last_seq_rcvd == seq) { pkt_dev-dup_rcvd++; pkt_dev-dup_since_incr++; } else { __s64 rx; __s64 tx; struct timeval txtv; if (skb-tstamp.off_sec || skb-tstamp.off_usec) { skb_get_timestamp(skb, txtv); } else { do_gettimeofday(txtv); skb_set_timestamp(skb, txtv); } rx = tv_to_us(txtv); txtv.tv_usec = ntohl(pgh-tv_usec); txtv.tv_sec = ntohl(pgh-tv_sec); tx = tv_to_us(txtv); record_latency(pkt_dev, rx - tx); if ((pkt_dev-last_seq_rcvd + 1) == seq) { if ((pkt_dev-peer_clone_skb 1) (pkt_dev-peer_clone_skb (pkt_dev-dup_since_incr + 1))) { pkt_dev-seq_gap_rcvd += (pkt_dev-peer_clone_skb - pkt_dev-dup_since_incr - 1); } /* Great, in order...all is well */ } else if (pkt_dev-last_seq_rcvd seq) { /* sequence gap, means we dropped a pkt most likely */ if (pkt_dev-peer_clone_skb 1) { /* We dropped more than one sequence number's worth, * and if we're using clone_skb, then this is quite * a few. This number still will not be exact, but
Re: pktgen patch available for perusal.
On Sat, 2006-04-11 at 09:29 -0800, Ben Greear wrote: jamal wrote: Please do send a script. I match based on this method below. Probably you only need the part that checks for the MAGIC, What i do in my case is send to the SUT to UDP port 9. The SUT loops back the packet to me after processing and i just have a simple check in the traffic generator of: a) Packet = IPV4, IP address matches what i want, port =9, b) If this matches i account and drop it. This means all other traffic (like ssh etc goes through fine). I dont really need to check for length because _i know_ udp port 9 to the SUT is test traffic. For such a setup, the script would be as simple as (assuming SUT hooked to eth0): -- #interested in incoming packets on eth0 tc qdisc add dev eth0 ingress #interested in packets coming from SUT(10.0.0.21) on UDP port 9 tc filter add dev eth0 parent : protocol ip prio 6 u32 \ match ip src 10.0.0.21/32 \ match udp port 9 0x \ flowid 1:16 \ action drop --- When you do a listing of this filter you will see accounting info. You list by saying: --- tc -s filter ls dev eth0 parent : --- You can ofcourse add many of these based on other header info. It seems to me your magic header is inside the UDP packet, correct? In that case you will have to play with matches since you can specify arbitraty offsets and values inside the packet. Of course you can do this from your application instead of using tc. I think that will be the best place to control this and sync with pktgen sending. the rest can be in a method called after you match in your script? If the packet/byte counters that the drop action provides are not good enough, you can write yourself a little module that will do the accounting the way you want it. For example this will be necessary to the out-of-sequence cheques below. Timestamps are already being updated Look at net/sched/act_simple.c and its associated user space code in iproute2. Now, Ben - are you listening really this time or am i wasting my time for the nth time giving you all these details? ;- If you are listening then start with: 1) Do a simple test with just udp traffic as above, doing simple accounting. This helps you to get a feel on how things work. 2) modify the matching rules to match your magic cookie 3) write a simple action invoked by your matching rules and use tc to add it to the policy. 4) integrate in your app now that you know what you are doing. If you follow these steps or a variant-of i will spend time and help. cheers, jamal - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
uli526x: I/O base is zero
I've got a rather awkward debugging situation. I helped a friend in another city set up a dual-boot Linux/Windows box a while ago, and it just got a motherboard upgrade. Unfortunately, I had followed my usual instincts and built a custom kernel which didn't include the new motherboard's drivers. If I can just get the network working, I can log in remotely and get everything else going, but until then, I have to instruct someone in kernel debugging over the telephone. The motherboard is an MSI K9NU Neo-V ULi M1697 AM2 motherboard, and PCI device :00:12.0 is an M5263 Ethernet controller, 10b9:5263(rev 60). It's an older but not ancient 2.6 kernel. 2.6.14, I think, although I can't seem to find where I wrote it down. The previous system, which I set up and was running fine, was a single-core K8, socket 939, with an nForce4 chipset. The new one is dual-core and ULi M1697. So there are a lot of similarities. Anyway, we got SMP enabled, and the uli526x driver enabled. But the network still didn't work. Booting with uli526x.debug=1 produced uli526x: uli526x_init_one() 0 ACPI: PCI interrupt :00:12.0[A]-GFI 20(level,low)-IRQ 50 uli526x: I/O base is zero Where I'm confused is the I/O base is zero message. Obviously, this is a fatal error to the device initialization, but I'm not sure what causes it. The obvious type the error message into google only produces a couple of disk images in Romania. The next step is probably to make and use a more recent boot CD. But just in case, can I ask: Can any psychic wizard here suggest, from this very fragmentaty information, some simple thing I have overlooked that would cause this problem? Thank you! - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [take22 0/4] kevent: Generic event handling mechanism.
On Fri, Nov 03, 2006 at 07:49:16PM +0100, Oleg Verych ([EMAIL PROTECTED]) wrote: [ Please do not answer just to answer, cc list is big, no one from ] [ The Big Jury seems to care. (well, Jonathan does, but he wasn't in cc) ] Friendly, Oleg. Just in case some misunderstanding happend: I do not want to insult anyone who is against kevent, I just do not understand cases, when people require me to do something to convince them in rude manner. -- Evgeniy Polyakov - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] bcm43xx: Drain TX status before starting IRQs
Jouni Malinen wrote: On Thu, Nov 02, 2006 at 09:45:46AM +0100, Johannes Berg wrote: On Wed, 2006-11-01 at 23:46 -0600, Larry Finger wrote: Has anyone used this patch, particularly with WPA encryption? When I try it, wpa_supplicant immediately uses 90+% of the cpu and never actually authenticates with my AP. I wonder if it is something with my system. What does wpa_supplicant do here? Have you looked at the debug log? Is it in some kind of busy loop doing something? I started wpa_supplicant in the foreground with the -w and -ddd options. When the BCM4306 card was plugged in, the following was output (this is hand transcribed and may not be exact): Added interface wlan0 Ignore event for foreign ifindex 8 l2_packet_receive - recvfrom: Network is down Ignore event for foreign ifindex 8 State: DISCONNECTED - SCANNING Starting AP scan (specific SSID) Scan SSID - hexdump_ascii (len = 6) 6c 77 66 64 6a 66 lwfdjf ioctl[SIOGSIWSCAN]: No such device Failed to initiate AP scan. Setting scan request: 10 sec 0 usec Ignore event for foreign ifindex 8 At this point, the system was in the state described earlier. I could not kill wpa_supplicant nor do anything else, and had to power off to recover. Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] ieee80211softmac: fix verbosity when debug disabled
SoftMAC contains a number of debug-type messages that continue to print even when debugging is turned off. This patch substitutes dprintkl for printkl for those lines. Signed-off-by: Larry Finger [EMAIL PROTECTED] --- Index: wireless-2.6/net/ieee80211/softmac/ieee80211softmac_auth.c === --- wireless-2.6.orig/net/ieee80211/softmac/ieee80211softmac_auth.c +++ wireless-2.6/net/ieee80211/softmac/ieee80211softmac_auth.c @@ -158,7 +158,7 @@ ieee80211softmac_auth_resp(struct net_de /* Make sure that we've got an auth queue item for this request */ if(aq == NULL) { - printkl(KERN_DEBUG PFX Authentication response received from MAC_FMT but no queue item exists.\n, MAC_ARG(auth-header.addr2)); + dprintkl(KERN_DEBUG PFX Authentication response received from MAC_FMT but no queue item exists.\n, MAC_ARG(auth-header.addr2)); /* Error #? */ return -1; } @@ -166,7 +166,7 @@ ieee80211softmac_auth_resp(struct net_de /* Check for out of order authentication */ if(!net-authenticating) { - printkl(KERN_DEBUG PFX Authentication response received from MAC_FMT but did not request authentication.\n,MAC_ARG(auth-header.addr2)); + dprintkl(KERN_DEBUG PFX Authentication response received from MAC_FMT but did not request authentication.\n,MAC_ARG(auth-header.addr2)); return -1; } @@ -342,7 +342,7 @@ ieee80211softmac_deauth_req(struct ieee8 /* Make sure the network is authenticated */ if (!net-authenticated) { - printkl(KERN_DEBUG PFX Can't send deauthentication packet, network is not authenticated.\n); + dprintkl(KERN_DEBUG PFX Can't send deauthentication packet, network is not authenticated.\n); /* Error okay? */ return -EPERM; } @@ -376,7 +376,7 @@ ieee80211softmac_deauth_resp(struct net_ net = ieee80211softmac_get_network_by_bssid(mac, deauth-header.addr2); if (net == NULL) { - printkl(KERN_DEBUG PFX Received deauthentication packet from MAC_FMT, but that network is unknown.\n, + dprintkl(KERN_DEBUG PFX Received deauthentication packet from MAC_FMT, but that network is unknown.\n, MAC_ARG(deauth-header.addr2)); return 0; } @@ -384,7 +384,7 @@ ieee80211softmac_deauth_resp(struct net_ /* Make sure the network is authenticated */ if(!net-authenticated) { - printkl(KERN_DEBUG PFX Can't perform deauthentication, network is not authenticated.\n); + dprintkl(KERN_DEBUG PFX Can't perform deauthentication, network is not authenticated.\n); /* Error okay? */ return -EPERM; } - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/1] Net: kconfig, correct traffic shaper
Patrick McHardy [EMAIL PROTECTED] wrote: While you're at it .. CBQ is actually not a very good alternative since it doesn't work properly on top of virtual network devices. The closest match for an alternative would be TBF, but HTB and HFSC also do fine. Maybe just point to the traffic schedulers in general. I think you could also change EXPERIMENTAL to OBSOLETE for the shaper device, the traffic schedulers are a lot more flexible. Ok, thanks for comments. Here it comes, please (n)ack it: -- kconfig, correct traffic shaper As Patrick McHardy [EMAIL PROTECTED] suggested, Traffic Shaper is now obsolete and alternative to it is no longer CBQ, since its problems with virtual devices, alter Kconfig text to reflect this -- put a link to the traffic schedulers as a whole. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: Alan Cox [EMAIL PROTECTED] Cc: Patrick McHardy [EMAIL PROTECTED] --- commit 95045e128e4db8cc07b9a616e6c1f3606b3b499f tree 3e924080ba76042c93e687a156483d6279e961ed parent 7e8fb7980d776e6a7c0bd84cc48b1cb9de139b8f author Jiri Slaby [EMAIL PROTECTED] Sat, 04 Nov 2006 21:41:33 +0059 committer Jiri Slaby [EMAIL PROTECTED] Sat, 04 Nov 2006 21:41:33 +0059 drivers/net/Kconfig |8 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index ee5ce6b..2ede616 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -2847,7 +2847,7 @@ config NET_FC SCSI generic support. config SHAPER - tristate Traffic Shaper (EXPERIMENTAL) + tristate Traffic Shaper (OBSOLETE) depends on EXPERIMENTAL ---help--- The traffic shaper is a virtual network device that allows you to @@ -2856,9 +2856,9 @@ config SHAPER these virtual devices. See file:Documentation/networking/shaper.txt for more information. - An alternative to this traffic shaper is the experimental - Class-Based Queuing (CBQ) scheduling support which you get if you - say Y to QoS and/or fair queuing above. + An alternative to this traffic shaper are traffic schedulers which + you'll get if you say Y to QoS and/or fair queuing in + Networking options. To compile this driver as a module, choose M here: the module will be called shaper. If unsure, say N. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: uli526x: I/O base is zero
[EMAIL PROTECTED] [EMAIL PROTECTED] : [...] uli526x: uli526x_init_one() 0 ACPI: PCI interrupt :00:12.0[A]-GFI 20(level,low)-IRQ 50 uli526x: I/O base is zero The PCI base address register used by the device is not set. Weird. wet finger It may be that the driver does not use the adequate BAR (gross). lspci -vx may give some hint. Otherwise ACPI, bios or PCI bridge are the usual suspects. /wet finger -- Ueimor - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/3] add dev_to_node()
On Sat, Nov 04, 2006 at 06:06:48PM -0500, Dave Jones wrote: On Sat, Nov 04, 2006 at 11:56:29PM +0100, Christoph Hellwig wrote: This will break the compile for !NUMA if someone ends up doing a bisect and lands here as a bisect point. You introduce this nice wrapper.. Yes, I'm stupid :) Updated version will follow ASAP. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/3] add dev_to_node()
On Sat, Nov 04, 2006 at 06:06:48PM -0500, Dave Jones wrote: On Sat, Nov 04, 2006 at 11:56:29PM +0100, Christoph Hellwig wrote: This will break the compile for !NUMA if someone ends up doing a bisect and lands here as a bisect point. You introduce this nice wrapper.. The dev_to_node wrapper is not enough as we can't assign to (-1) for the non-NUMA case. So I added a second macro, set_dev_node for that. The patch below compiles and works on numa and non-NUMA platforms. Signed-off-by: Christoph Hellwig [EMAIL PROTECTED] Index: linux-2.6/include/linux/device.h === --- linux-2.6.orig/include/linux/device.h 2006-11-05 00:16:09.0 +0100 +++ linux-2.6/include/linux/device.h2006-11-05 00:39:22.0 +0100 @@ -347,6 +347,9 @@ BIOS data),reserved for device core*/ struct dev_pm_info power; +#ifdef CONFIG_NUMA + int numa_node; /* NUMA node this device is close to */ +#endif u64 *dma_mask; /* dma mask (if dma'able device) */ u64 coherent_dma_mask;/* Like dma_mask, but for alloc_coherent mappings as @@ -368,6 +371,14 @@ void(*release)(struct device * dev); }; +#ifdef CONFIG_NUMA +#define dev_to_node(dev) ((dev)-numa_node) +#define set_dev_node(dev, node)((dev)-numa_node = node) +#else +#define dev_to_node(dev) (-1) +#define set_dev_node(dev, node)do { } while (0) +#endif + static inline void * dev_get_drvdata (struct device *dev) { Index: linux-2.6/drivers/base/core.c === --- linux-2.6.orig/drivers/base/core.c 2006-11-05 00:16:09.0 +0100 +++ linux-2.6/drivers/base/core.c 2006-11-05 00:40:01.0 +0100 @@ -381,6 +381,7 @@ INIT_LIST_HEAD(dev-node); init_MUTEX(dev-sem); device_init_wakeup(dev, 0); + set_dev_node(dev, -1); } /** Index: linux-2.6/drivers/pci/probe.c === --- linux-2.6.orig/drivers/pci/probe.c 2006-11-05 00:16:09.0 +0100 +++ linux-2.6/drivers/pci/probe.c 2006-11-05 00:39:55.0 +0100 @@ -846,6 +846,7 @@ dev-dev.release = pci_release_dev; pci_dev_get(dev); + set_dev_node(dev-dev, pcibus_to_node(bus)); dev-dev.dma_mask = dev-dma_mask; dev-dev.coherent_dma_mask = 0xull; - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html