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