All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] When the inside functions of a sfq are called ?
Date: Mon, 19 Apr 2004 14:55:04 +0000	[thread overview]
Message-ID: <4083E848.7030307@dsl.pipex.com> (raw)
In-Reply-To: <3536.192.193.194.7.1082049009.squirrel@mail.smartcall.ro>

Adrian Saileanu wrote:
>>Adrian Saileanu wrote:
>>
>>>  I read the sched/qdiscs code from kernel source ... and I have some
>>>questions :
>>>
>>>  When the .enqueue, .dequeue, .drop, .requeue functions are called ?
>>
>>Do you mean in sfq.c - ie sfq_enqueue etc. Maybe you mean something else.
> 
> 
> Yes, I ment the functions in the Qdisc_ops struct :
> 
> +static struct Qdisc_ops dup_qdisc_ops = {
> +        .next                = NULL,
> +        .cl_ops                = NULL,
> +        .id                = "sfq",
> +        .priv_size        = sizeof(struct sfq_sched_data),
> +        .enqueue        = sfq_enqueue,
> +        .dequeue        = sfq_dequeue,
> +        .requeue        = sfq_requeue,
> +        .drop                = sfq_drop,
> +        .init                = sfq_init,
> +        .reset                = sfq_reset,
> +        .destroy        = NULL,
> +        .change                = sfq_init,
> +        .dump                = sfq_dump,
> +        .owner                = THIS_MODULE,
> +};
> 
> 
> 
>>  What
>>
>>>is the event that triggers them and how often this event apears ( per
>>>second ? ) ?
>>
>>I don't know as such, but always assumed that when attached to HTB  - a
>>packet gets enqueued if there aren't enough (c)tokens to send it and
>>dequeued when there are. As for timing I don't think sfq uses any - it's
>>up to whatever it is attached to.
>>
> 
> 
>   Ok, the packet gets enqueued ... and the queue gets full. Then if a new
> packet arrives and the queue is still full (  it has not been dequeued )
> then this packet is dropped. 

I think a packet gets enqueued - then the queue length is checked and if 
it's full sfq_drop is called. sfq_drop drops a packet from the longest 
slot - hence the packet that filled the queue may or may not be the one 
that is dropped depending on which slot it got hashed to.

> My question is ... is the queue dequeued
> when it is full ? Or t can be dequeued even when the maximum has not
> been reatched ? When this .dequeue function is called ?

It is normal for dequeue to be called before the queue is full - exactly 
when it gets called is the job of whatever the sfq got attached to.

Andy.

_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

      parent reply	other threads:[~2004-04-19 14:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-15 17:10 [LARTC] When the inside functions of a sfq are called ? Adrian Saileanu
2004-04-16  0:47 ` Roy
2004-04-16 12:24 ` Adrian Saileanu
2004-04-16 13:00 ` Roy
2004-04-18 10:05 ` Andy Furniss
2004-04-19 13:40 ` Adrian Saileanu
2004-04-19 14:55 ` Andy Furniss [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4083E848.7030307@dsl.pipex.com \
    --to=andy.furniss@dsl.pipex.com \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.