linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Fast HDLC driver
@ 2002-11-19 16:08 Owen Green
  0 siblings, 0 replies; 5+ messages in thread
From: Owen Green @ 2002-11-19 16:08 UTC (permalink / raw)
  To: linuxppc-embedded


Hi all,

I`ve started working on a new project were a high
performace hdlc channel is needed (at least 4Mbps on
MPC8xx-50Mhz).
I found several drivers for hdlc, but some are not
very fast (copies memory,... ), most of them calls
netif_rx from inside interrupt_handler (I don`t think
this is the best place for doing that, watchdog may
expire if the interface gets very busy..).
The only driver I found that seems to be really fast
and doesnt do all this stuff in interrupt context is
for kernel-2.2 (QSLINUX).
Does anyone ported this to 2.4 or knows another
implementation of hdlc driver that could do this the
way I`m thinking?

Thanks in advance, Owen.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: Fast HDLC driver
       [not found] <20021119161020.83422.qmail@web20104.mail.yahoo.com>
@ 2002-11-19 16:48 ` Joakim Tjernlund
  2002-11-19 16:55 ` Roland Dreier
  1 sibling, 0 replies; 5+ messages in thread
From: Joakim Tjernlund @ 2002-11-19 16:48 UTC (permalink / raw)
  To: Owen Green, linuxppc-embedded


Hi Owen

I have written a patch to 8xx_io/enet.c that avoids copying. It still calls
netif_rx from IRQ context, but it's a start. The patch was posted a few weeks
ago to this list.

Could you post a copy of the qslinux hdlc driver? I am interested to se how
one would avoid calling netif_rx from IRQ context.

      Jocke
>
>
> Hi all,
>
> I`ve started working on a new project were a high
> performace hdlc channel is needed (at least 4Mbps on
> MPC8xx-50Mhz).
> I found several drivers for hdlc, but some are not
> very fast (copies memory,... ), most of them calls
> netif_rx from inside interrupt_handler (I don`t think
> this is the best place for doing that, watchdog may
> expire if the interface gets very busy..).
> The only driver I found that seems to be really fast
> and doesnt do all this stuff in interrupt context is
> for kernel-2.2 (QSLINUX).
> Does anyone ported this to 2.4 or knows another
> implementation of hdlc driver that could do this the
> way I`m thinking?
>
> Thanks in advance, Owen.
>
>
>
>


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fast HDLC driver
       [not found] <20021119161020.83422.qmail@web20104.mail.yahoo.com>
  2002-11-19 16:48 ` Joakim Tjernlund
@ 2002-11-19 16:55 ` Roland Dreier
       [not found]   ` <200211201439.45731.scop@digitel.com.br>
  1 sibling, 1 reply; 5+ messages in thread
From: Roland Dreier @ 2002-11-19 16:55 UTC (permalink / raw)
  To: Owen Green; +Cc: linuxppc-embedded


>>>>> "Owen" == Owen Green <owenjinggreen@yahoo.com> writes:

    Owen> most of them calls netif_rx from inside interrupt_handler (I
    Owen> don`t think this is the best place for doing that, watchdog
    Owen> may expire if the interface gets very busy..)

I don't have a specific answer about HDLC, but I think calling
netif_rx() from interrupt context is correct.  netif_rx() doesn't do
anything except queue the packet for processing and then mark the
network softirq.  In fact if you want to call netif_rx() from
non-interrupt context then you have to use the netif_rx_ni() function
to make sure the softirq runs soon enough.

Best,
  Roland

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fast HDLC driver
       [not found] <200211191615.gAJGFVw09351@hofr.at>
@ 2002-11-19 19:01 ` Owen Green
  0 siblings, 0 replies; 5+ messages in thread
From: Owen Green @ 2002-11-19 19:01 UTC (permalink / raw)
  To: Der Herr Hofrat; +Cc: linuxppc-embedded


You can find it on:

http://www.qslinux.com/

I`ve posted the .c file in the list too...

Owen.

--- Der Herr Hofrat <der.herr@mail.hofr.at> wrote:
> >
> > Hi all,
> >
> > I`ve started working on a new project were a high
> > performace hdlc channel is needed (at least 4Mbps
> on
> > MPC8xx-50Mhz).
> > I found several drivers for hdlc, but some are not
> > very fast (copies memory,... ), most of them calls
> > netif_rx from inside interrupt_handler (I don`t
> think
> > this is the best place for doing that, watchdog
> may
> > expire if the interface gets very busy..).
> > The only driver I found that seems to be really
> fast
> > and doesnt do all this stuff in interrupt context
> is
> > for kernel-2.2 (QSLINUX).
>
> do you have a URL to that driver ??
>
> thx !
> hofrat


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Fast HDLC driver
       [not found]   ` <200211201439.45731.scop@digitel.com.br>
@ 2002-11-20 17:41     ` Roland Dreier
  0 siblings, 0 replies; 5+ messages in thread
From: Roland Dreier @ 2002-11-20 17:41 UTC (permalink / raw)
  To: Ricardo Scop; +Cc: Owen Green, linuxppc-embedded


>>>>> "Ricardo" == Ricardo Scop <scop@digitel.com.br> writes:

    Roland> I don't have a specific answer about HDLC, but I think
    Roland> calling netif_rx() from interrupt context is correct.
    Roland> netif_rx() doesn't do anything except queue the packet for
    Roland> processing and then mark the network softirq.  In fact if
    Roland> you want to call netif_rx() from non-interrupt context
    Roland> then you have to use the netif_rx_ni() function to make
    Roland> sure the softirq runs soon enough.

    Ricardo> Hmm, is this true? QSLinux driver calls netif_rx() from
    Ricardo> thew interrupts bottom half; it it ok?

This should probably be OK.  First, a bottom half is still interrupt
context.  Second, if I recall correctly, Linux 2.2 does not even
define netif_rx_ni().  If the driver works well there's no reason to
change it.

Best,
  Roland


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-11-20 17:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-19 16:08 Fast HDLC driver Owen Green
     [not found] <20021119161020.83422.qmail@web20104.mail.yahoo.com>
2002-11-19 16:48 ` Joakim Tjernlund
2002-11-19 16:55 ` Roland Dreier
     [not found]   ` <200211201439.45731.scop@digitel.com.br>
2002-11-20 17:41     ` Roland Dreier
     [not found] <200211191615.gAJGFVw09351@hofr.at>
2002-11-19 19:01 ` Owen Green

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).