Re: net_device: limit rate ot tx packets

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

 



On Sun, 14 Apr 2013 10:09:54 +0200, michi1@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx said:

> This is not what I meant. When the qdisc has a size of say 256KB and the
> socket memory is, say 128kb, the socket memory limit will be reached before
> the qdisc limit and the socket will sleep. But when the socket memory limit
> is greater than the qdisc limit, it will be interesting whether the socket
> still sleeps or starts dropping packets.

How to figure this out for yourself:

Look at net/sched/sch_plug.c, which is a pretty simple qdisc (transmit packets
until a plug request is recieved, then queue until unplugged). In particular,
look at plug_enqueue() to see what happens when q->limit is exceeded, and
plug_init() to see where q->limit is set.

Then look at the definition of qdisc_reshape_fail() in
include/net/sch_generic.h to figure out what the qdisc returns if q->limit is
exceeded.

Then go look at net/core/dev.c, in function __dev_xmit_skb(), and
watch the variable 'rc'.

Now go find the caller of __dev_xmit_skb() and see what it does with
that return value.

Hope that helps...

Attachment: pgpQdeX_qYhyr.pgp
Description: PGP signature

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux