All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Alex Plits <alex_plits@radwin.com>
Cc: "xenomai@xenomai.org" <xenomai@xenomai.org>
Subject: Re: [Xenomai] Suggested approach to schedule N-RT work in kernel on a specific CPU core
Date: Sun, 20 Mar 2016 09:38:09 +0100	[thread overview]
Message-ID: <20160320083809.GH3345@hermes.click-hack.org> (raw)
In-Reply-To: <DB5PR06MB1109ECA9BDF431C1E18980E78F8E0@DB5PR06MB1109.eurprd06.prod.outlook.com>

On Sun, Mar 20, 2016 at 08:20:36AM +0000, Alex Plits wrote:
> 
> 
> > -----Original Message-----
> > From: Gilles Chanteperdrix [mailto:gilles.chanteperdrix@xenomai.org]
> > Sent: Sunday, March 20, 2016 10:00 AM
> > To: Alex Plits
> > Cc: xenomai@xenomai.org
> > Subject: Re: [Xenomai] Suggested approach to schedule N-RT work in kernel
> > on a specific CPU core
> > 
> > On Sun, Mar 20, 2016 at 07:49:16AM +0000, Alex Plits wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: Gilles Chanteperdrix [mailto:gilles.chanteperdrix@xenomai.org]
> > > > If the Linux kernel provides a function to do this, we could
> > > > implement a function mirroring that function in the RTDM API. Looks
> > > > simple. Am I missing something ?
> > > >
> > >
> > > [Alex Plits] The Linux provides an option to configure the workQ on
> > > specific CPU's on it's initialization stage of the WorkQ. I'm unsure
> > > Of how/whether it actually schedules it's execution when schedule_work
> > > is called from a different CPU core that it was configured up-on.
> > 
> > I doubt very much this does not work. Have you tried it and observed that it
> > does not work?
> > 
> > 
> > 
> > > I'm guessing that if it were trivial the same mechanism would also be
> > > used in the current API for N-RT or xenomai printk mechanism (both use
> > > dedicated workQs which are different than Linux WorkQs awaken via
> > > VIRQs).
> > 
> > There is no xenomai printk mechanism. printk is implemented by the I-pipe
> > patch, a layer below Xenomai, so can not use an RTDM service.
> > Besides, the I-pipe patch printk implementation predates
> > ipipe_post_work_root.
> > 
> > The way RTDM work works is with the ipipe_post_work_root service, so it
> > does not use virqs, and since the schedule_work gets invoked in a plain linux
> > context, anything which works with schedule_work (like triggering a work
> > queue on a different cpu) should work with the RTDM service.
> > 
> > So, again, have you tried running the RTDM service with a work queue
> > pinned on a different cpu and observed that it did not work?
> > 
> [Alex Plits] 
> First off, thanks for such quick replies!
> Secondly no I have not tried since I have not seen such an example.
> So basically what you're saying - 
> Run schedule_work in handler which is scheduled by rtdm_schedule_nrt_work and use some linux defined workQ with cpu "affinity" - right?

I meant simply use rtdm_schedule_nrt_work with a work queue that has
been pinned on a given cpu. rtdm_schedule_nrt_work simply gets
schedule_work invoked in a plain linux context. So, there should not
be much difference between using rtdm_schedule_nrt_work and
schedule_work. The only difference being that rtdm_schedule_nrt_work
can be invoked in head domain.

-- 
					    Gilles.
https://click-hack.org


  reply	other threads:[~2016-03-20  8:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-20  7:15 [Xenomai] Suggested approach to schedule N-RT work in kernel on a specific CPU core Alex Plits
2016-03-20  7:25 ` Gilles Chanteperdrix
2016-03-20  7:49   ` Alex Plits
2016-03-20  7:59     ` Gilles Chanteperdrix
2016-03-20  8:20       ` Alex Plits
2016-03-20  8:38         ` Gilles Chanteperdrix [this message]
2016-03-20  8:29       ` Alex Plits

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=20160320083809.GH3345@hermes.click-hack.org \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=alex_plits@radwin.com \
    --cc=xenomai@xenomai.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.