Why is taskset still not in util-linux?

Yaakov Selkowitz yselkowitz@cygwin.com
Fri Mar 20 13:39:23 GMT 2020


On Thu, 2020-03-19 at 22:54 -0700, Mark Geisert wrote:
> Mark Geisert wrote:
> > Eliot Moss wrote:
> > > On 3/16/2020 7:34 PM, Mark Geisert wrote:
> > >  > Mark Geisert wrote:
> > >  >> Eliot Moss wrote:
> > >  >>>
> > >  >>> Dear cygwin-ers --
> > >  >>>
> > >  >>> Something I had asked about a while ago was the absence os taskset in 
> > > cygwin's
> > >  >>> util-linux.  At the time, it was pointed out that the necessary get/set
> > >  >>> affinity library/system calls were not yet supported.  These were added a
> > >  >>> while ago, so it would seem that taskset ought to work.  In fact, I think
> > >  >>> someone got it going on their own.  Can we add it to util-linux now,
> > >  >>> officially?  I think this was intended but perhaps was overlooked or
> > >  >>> something.
> > >  >>
> > >  >> Report noted; thanks.  A solution is being worked.
> > >  >
> > >  > There's been no forward progress on this.  If you're comfortable getting 
> > > the util-linux source
> > >  > package through Cygwin setup*.exe, you can follow the steps shown in
> > >  > https://cygwin.com/pipermail/cygwin-apps/2020-March/039855.html to build 
> > > (with cygport) a local copy
> > >  > of util-linux that includes a taskset.exe you can move into /usr/local/bin, 
> > > for example.
> > >  >
> > >  > You might try that route if you're up for it.  Feel free to ask questions 
> > > here if you hit a snag.
> > >  > HTH,
> > > 
> > > Thank you, Mark.  I decided to give it a try and got some distance, but hit a 
> > > snag.
> > > 
> > > First, I had to change configure.ac to add control to disable ionice (Cygwin
> > > does not support a required syscall) while still trying to build taskset.
> > > Previously taskset and ionice (and one other program) were controlled by the
> > > single --enable-schedutils.
> > > 
> > > Now, including sched.h does not provide the prototypes for sched_getaffinity,
> > > etc.  I found a previous post that suggests we need to do -D_GNU_SOURCE for it
> > > to work.  I am not sure of the best place to stick that, but I will see about
> > > maybe a one line patch to taskset.c or something.
> > 
> > Rats.  Sorry you've hit some snags.  Are you compiling directly with 'make' or 
> > the preferred 'cygport util-linux.cygport build'?  With the latter I didn't need 
> > to make any changes to the source tree; all mods were accomplished with the new 
> > patch file and changes to util-linux.cygport itself.
> 
> I've reproduced your snags.  It/they are due to my having forgotten another tiny 
> update that should have been part of the 2.33.1-cygwin-cpuset.patch file.  If 
> you 'echo "#define SYS_sched_getaffinity 42" > /usr/local/include/sys/syscall.h' 
> and then back out your other fix attempts, the build using cygport should work.

Cygwin doesn't support syscalls.  I'd be very wary of any code which is
conditional on any #ifdef SYS_*.

--
Yaakov





More information about the Cygwin mailing list