Re: run queue

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

 



On Tue, Jul 27, 2004 at 10:47:13 +0200, Tomasz Paszkowski wrote:
> Hello,
> 
> I'am running hfsc qdisc with huge set of rules loaded. Always when I delete
> the root qdisc the machine stop responding for about 5-6 seconds. As I
> think it's due the hfsc_destory_qdisc is executed in main kernel thread.
> 
> Is there any solutions which can after completing each run in loop, put
> itself at the end of run queue ?

The code would have to be rewritten.

If it's 2.6 kernel, recompile it with preemption. It should help 

Actualy, I am not sure whether it runs in an event thread (ie. from work
queue, as the subject suggests), or from the syscall (as I would
consider more likely).

If it's from syscall, fixing it would be easy -- just add something
like:
if(current->need_resched) schedule()
into the loop.

If it's run from a work queue, it would have to be completely rewritten.

Anyway, please post it on the linux-kernel@xxxxxxxxxxxxxxx list as
a bug.

> hfsc_destroy_qdisc(struct Qdisc *sch)
> {
>         struct hfsc_sched *q = (struct hfsc_sched *)sch->data;
>         struct hfsc_class *cl, *next;
>         unsigned int i;
> 
>         for (i = 0; i < HFSC_HSIZE; i++) {
>                 list_for_each_entry_safe(cl, next, &q->clhash[i], hlist)
>                         hfsc_destroy_class(sch, cl);
>         }
>         __skb_queue_purge(&q->requeue);
>         del_timer(&q->wd_timer);
>         MOD_DEC_USE_COUNT;
> }
> 
> 
> 
> -- 
> Tomasz Paszkowski


-------------------------------------------------------------------------------
						 Jan 'Bulb' Hudec <bulb@xxxxxx>

Attachment: signature.asc
Description: Digital signature


[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