All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Shepherd <mcs@astro.caltech.edu>
To: linux-rt-users@vger.kernel.org
Subject: Re: Setting the priority of an IRQ thread
Date: Tue, 16 Jun 2009 21:54:19 +0000 (UTC)	[thread overview]
Message-ID: <loom.20090616T215133-122@post.gmane.org> (raw)
In-Reply-To: 20090616182734.GD13048@pengutronix.de

Uwe Kleine-König <u.kleine-koenig <at> pengutronix.de> writes:
> > IRQ thread, then use sys_sched_setscheduler(pid,...) to change its priority.
> > I'll try that out in the morning.
> I wouldn't recommend calling sys_sched_setscheduler from kernel space.
> That's the userspace API and you need to pass a __user pointer as third
> argument.

Good point, although my ioctl() will be passing the scheduling
parameters from user-space. So the need for a __user pointer for this
would not be a problem. Alternatively one could call task_setprio(),
instead of sys_sched_setscheduler(), and omit the then reduntant step
of figuring out the PID of the task.
 
> The right way is to do this change from userspace.

Which is what I am trying to do.  I want the application thread that
uses my driver to be able to set the priority of its interrupt to
equal the priority of the calling thread.  The problem with calling
sched_setscheduler directly from user-space, is figuring out the PID
of the IRQ thread. First of all, I have multiple boards of the same
type, such that looking in /proc/interrupts won't tell me which IRQ is
being used by a given board. So I would have to implement an ioctl()
anyway, just to query the IRQ from the device driver. Secondly, the
PID of the corresponding IRQ thread changes each time that
request_irq() is called, and then later freed. So searching for the
IRQ thread couldn't be done by a wrapper script around the program.

It seems much more friendly and efficient for my driver to provide
applications with an ioctl that tells it to set the priority of its
IRQ thread.

Note that none of this would be necessary if the IRQ thread of a
device automatically inherited the priority of the highest priority
realtime thread that has requested (and not yet free'd) its IRQ. Not
doing so, leads to a form of priority inversion.

Thanks,

Martin




--
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 21:54 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-15 22:44 Setting the priority of an IRQ thread Martin Shepherd
2009-06-16  3:54 ` Suresh Kumar SHUKLA
2009-06-16  7:59   ` Martin Shepherd
2009-06-16 18:27     ` Uwe Kleine-König
2009-06-16 21:25       ` Martin Shepherd
2009-06-16 21:54       ` Martin Shepherd [this message]
2009-06-17  5:21         ` Thomas Gleixner
2009-06-17  6:09           ` Martin Shepherd
2009-06-17  9:00             ` Thomas Gleixner
2009-06-18  1:08               ` Martin Shepherd
2009-06-16 22:28       ` Thomas Gleixner
2009-06-17  1:12         ` GeunSik Lim
2009-06-17  2:27           ` Martin Shepherd
2009-06-17  5:28             ` Thomas Gleixner
2009-06-17  3:27         ` Martin Shepherd
2009-06-17  5:38           ` Thomas Gleixner
2009-06-17  9:17         ` Thomas Gleixner
2009-06-17 11:21           ` Remy Bohmer
2009-06-17 13:32             ` GeunSik Lim
2009-06-17 15:45               ` Thomas Gleixner
2009-06-17 13:54             ` Leon Woestenberg
2009-06-17 15:35             ` Thomas Gleixner
2009-06-17 20:14               ` Remy Bohmer
2009-06-17 23:32                 ` Thomas Gleixner
2009-06-18 11:05                 ` Suresh Kumar SHUKLA
2009-06-17  8:27     ` Thomas Pfaff
     [not found] <4A37E0CE020000D90003727B@sinclair.provo.novell.com>
2009-06-16 22:13 ` Peter Morreale

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=loom.20090616T215133-122@post.gmane.org \
    --to=mcs@astro.caltech.edu \
    --cc=linux-rt-users@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.