linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Iratxo Pichel Ortiz <ipichel@albentia.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>,
	"Iratxo Pichel Ortiz" <ipichel@albentia.com>,
	"Noelia Morón" <nmoron@albentia.com>,
	"'Rodrigo Partearroyo'" <rpartearroyo@albentia.com>
Subject: Re: NOHZ: local_softirq_pending - More info without need for specific code.
Date: Tue, 16 Jun 2009 11:26:49 +0200	[thread overview]
Message-ID: <4A376559.5060604@albentia.com> (raw)
In-Reply-To: <4A376450.5020209@albentia.com>

Thomas,

More info below, I hope it helps.

Iratxo Pichel Ortiz wrote:
> Thomas,
>
> Iratxo Pichel Ortiz wrote:
>>>>  2.6.29-rt16, right ?
>>>>       
>>> I have also tried rt18, but as I had thought seeing change-logs, the
>>> behavior is exactly the same.
>>>     
> You were right here :) It was 29.
>>> Do you know what could be causing this issue. I have managed to 
>>> repeat this
>>> traces (NOHZ...) without using my code, using a workqueue and in the 
>>> work
>>> just by doing something like:
>>>
>>> work_func() {
>>>   mdelay(10);
>>>   msleep(10);
>>>
>>>  queue_work(myqueue, mywork);
>>> }
>>>
>>> And then by heavy loading the box from the outside.
>>>     
> I have written a very small module that causes the
> "local_softirq_pending" under not some load. Please find code at the end
> of this email. Here is pasted some traces of dmesg (I have increased the
> ratelimit of the "NOHZ: local..." trace to 250.
>
> The only strange thing here is that I am calling "set_workqueue_prio" (I
> have hacked source to export this symbol), and I am starting to think
> that this could not be a good idea. Any hints about this?
>
> [  648.954000] NOHZ: local_softirq_pending
> 0e
>
> [  648.955000] NOHZ: local_softirq_pending
> 0e
>
> [  648.956000] NOHZ: local_softirq_pending
> 0e
I have changed the implementation of the module test to use kthreads
instead of workqueues. The behavior is exactly the same. I have tried
with prios from 1 to 99. Please find the code below as before. I have
also atached the differente softirqs codes that had been pending in some
of the tests.
>
>
>>>> Does it work when you disable CONFIG_NOHZ ?
>>>>       
> Still pending to test.
>>> I will try this and let the list know.
>>>    
>>>> Thanks,
>>>>
>>>>        tglx
>>>>     
Thanks a lot again!

    Iratxo.

---- DMESG ----
[4294833.294000] NOHZ: local_softirq_pending
06
[4294833.295000] NOHZ: local_softirq_pending
06
[4294834.246000] NOHZ: local_softirq_pending
02
[4294834.247000] NOHZ: local_softirq_pending
02
[4294834.248000] NOHZ: local_softirq_pending 02

---- Test module code ----

#include <linux/module.h>
#include <linux/kthread.h>
#include <linux/sched.h>
#include <linux/delay.h>

#define LATENCY_PRIO    1

struct task_struct *t;

int LatencyzerWork(void* data)
{
    static int count;

    while(1) {
        /* Busy and normal waiting */
        mdelay(10);
        msleep(1);

    /* Requeue work */
    if(count++ > 400000)
        break;
    }

    printk("LAT: Count reached %d, stopped latencying\n", count);
    return 0;
}

int __init LatencyzerInit(void)
{
    struct sched_param schedp;

    /* Prepare Thread */
    printk("LAT: Initializing latencyzer\n");
    if(!(t = kthread_create(LatencyzerWork, NULL, "LATENCY"))) {
        printk("LAT: Error creating thread\n");
        return -1;
    }

    /* Change task prio */
    schedp.sched_priority = LATENCY_PRIO;
    sched_setscheduler(t, SCHED_FIFO, &schedp);
    printk("LAT: Task prio set to %u\n", LATENCY_PRIO);

    /* Run thread */
    wake_up_process(t);
    return 0;
}

void __exit LatencyzerExit(void)
{
    printk("LAT: Latencyzer exiting...");

    /* Done here */
    kthread_stop(t);
    printk(" DONE\n");

    return;
}

module_init(LatencyzerInit);
module_exit(LatencyzerExit);
MODULE_LICENSE("GPL");


-- 
Iratxo Pichel Ortiz
Software Development Manager

Albentia Systems S.A.
http://www.albentia.com

Tel: +34 914400567
Cel: +34 663808405
Fax: +34 914400569

C\Margarita Salas 22
Parque Tecnológico de Leganés
Leganés (28918)
Madrid
Spain


--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-06-16  9:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-14 15:28 NOHZ: local_softirq_pending Iratxo Pichel Ortiz
2009-06-14 19:50 ` Iratxo Pichel Ortiz
2009-06-15 13:19   ` Thomas Gleixner
2009-06-15 14:38     ` Iratxo Pichel Ortiz
     [not found]       ` <8e6b7a710906160101x6a8ae9d5qa7638627f513278@mail.gmail.com>
2009-06-16  8:26         ` NOHZ: local_softirq_pending - More info without need for specific code Iratxo Pichel Ortiz
     [not found]         ` <4A376450.5020209@albentia.com>
2009-06-16  9:26           ` Iratxo Pichel Ortiz [this message]
2009-06-16 14:45             ` NOHZ: local_softirq_pending Iratxo Pichel Ortiz
2009-06-16 18:39               ` Iratxo Pichel Ortiz
2009-06-17 22:03                 ` Thomas Gleixner
2009-06-17 22:35                   ` Iratxo Pichel Ortiz
2009-06-17 23:46                     ` Thomas Gleixner
2009-06-18  0:33                       ` Iratxo Pichel Ortiz
2009-06-18  8:57                         ` Thomas Gleixner
2009-06-18 16:52                           ` Iratxo Pichel Ortiz

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=4A376559.5060604@albentia.com \
    --to=ipichel@albentia.com \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=nmoron@albentia.com \
    --cc=rpartearroyo@albentia.com \
    --cc=tglx@linutronix.de \
    /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 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).