Re: UDP/IP via Ethernet in real time (config-preempt patch)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

thanks for the feedback. I had a closer look at the receive path of an Ethernet frame.
The driver (e1000 in my case) receives the raw frame and calls netif_rx.
>From netif_rx the sk_buff is passed on to netif_rx_schedule and here a raise_soft_irqoff(NET_RX_SOFTIRQ)
is called to trigger the task that does the remaining parts of the reception.
Even if I use a AF_PACKET / AF_RAW socket, it will be handled by the NET_RX_SOFTIRQ task.
As this task is not running in real time priority, I loose real time behaviour.

Within netif_rx there is a call to netpoll_rx which could be used as a kind filter to 
separate interesting packets. However, currently netpoll_rx is used by the netconsole  which allows 
to register exactly one UDP per device that is taken into account.
I can not handle a real time network. Neither I do have a inteface to user space to the netconsole.
One approach could be to implement something similar to netpoll_rx that is used as switch
to separate standard Ethernet frames and frames that are treated as real time relevant.
In this case something similar to netif_rx_schedule is needed that calls a real time priority 
irq thread like NET_RX_SOFTIRQ...

Any comments or feedback on this is highly welcome...

Thanks a lot

Mathias

> On Wed, Jul 18, 2007 at 04:26:00PM +0200, M. Koehrer wrote:
> > Hi,
> > 
> > I had a short look at the netconsole.txt and the correspondent code.
> > It seems to be based on netpoll. This looks quite interesting for my
> needs.
> > However, it seems to be only accessible from kernel space and not 
> > from user space.
> > I want to run a real time application in user space and do the UDP
> accesses 
> > from there. 
> > Is this somehow possible with the netpoll code? I did not see a callable
> interface
> > from user space side.
> > 
> > 
> Raw or Packet sockets then (AF_RAW / AF_PACKET)?
> 
> Neil
> 
> > Thanks for any feedback on this topic.
> > 
> > Regards
> > 
> > Mathias
> > > I would dump the idea of using UDP and inject raw ethernet frames onto
> > > the LAN segment. You can do this by bypassing almost all of the
> > > net-stack I'm sure of it. I think the netconsole kernel code does
> > > it...
> > > 
> > > Documentation/networking/netconsole.txt
> > > 
> > 
> > 
> > -- 
> > Mathias Koehrer
> > mathias_koehrer@xxxxxxxx
> > 
> > 
> > Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren
> > ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor:
> günstig
> > und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer,
> > nur  39,85 ?  inkl. DSL- und ISDN-Grundgebühr!
> > http://www.arcor.de/rd/emf-dsl-2
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-net" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> -- 
> /***************************************************
>  *Neil Horman
>  *Software Engineer
>  *Red Hat, Inc.
>  *nhorman@xxxxxxxxxxxxx
>  *gpg keyid: 1024D / 0x92A74FA1
>  *http://pgp.mit.edu
>  ***************************************************/
> 

-- 
Mathias Koehrer
mathias_koehrer@xxxxxxxx


Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren
ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig
und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer,
nur  39,85 ?  inkl. DSL- und ISDN-Grundgebühr!
http://www.arcor.de/rd/emf-dsl-2
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux