Util-Linux package development
 help / color / mirror / Atom feed
From: yumkam@gmail.com (Yuriy M. Kaminskiy)
To: util-linux@vger.kernel.org
Subject: Re: Separate taskset arguments from the command arguments
Date: Sun, 28 Feb 2016 03:23:41 +0300	[thread overview]
Message-ID: <m3a8mln0mq.fsf@gmail.com> (raw)
In-Reply-To: m3egbxn4uz.fsf@gmail.com

yumkam@gmail.com (Yuriy M. Kaminskiy)
writes:

> Akshay Adiga <akshay.adiga@gmail.com>
> writes:
>
>> I want to run a command which looks something like this :
>>
>> taskset -c 10 ycsb -p "redis_host=1234"
>>
>> The actual command is :
>>
>> ycsb -p "redis_host=1234"
>>
>> But argument -p "redis_host=1234" is taken by taskset as it argument
>> and throws an error : Failed to set pid 0's affinity:
>>
>> -p "redis_host=1234" is an argument to ycsb command. shell/tasket
>> misunderstands that and takes it as an argument for taskset.
>>
>> Is there a work around for this?
>
> Normally, such problem are solved by inserting `--` before your command;
> however, taskset have somewhat unusual parsing of arguments (-c is not
> an "option with argument", but the flag), so it will be
>
>   taskset -c -- 10 ycsb -p "redis_host=1234"

Hmm... actually, on which util-linux and libc version this is on?

This should work even without -- (and it works for me [on util-linux 2.25.2
and glibc 2.19; and on util-linux git master branch too), note `getopt
... "+` in taskset.c and `man 3 getopt_long` on meaning (getopt should
stop parsing on first non-option argument, in your case `ycsb`).

And do your system have 10 cpu's/cores/whatever? Because if I specify cpu number
larger than present, taskset gives exactly this error:

$ taskset -c 100 echo -p foobar
taskset: failed to set pid 0's affinity: Invalid argument

This may be confused as "incorrect argument parsing", but it is not
("pid 0" is just means it tries to apply affinity to itself, it is not
misparsed "foobar"); with existing cpu number everything works:

$ taskset -c 1 echo -p foobar
-p foobar
$ taskset -c -- 1 echo -p foobar
-p foobar

(That said, taskset and chrt argument parsing is a bit unusual and may be confusing)


  reply	other threads:[~2016-02-28  0:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-27 18:46 Separate taskset arguments from the command arguments Akshay Adiga
2016-02-27 22:52 ` Yuriy M. Kaminskiy
2016-02-28  0:23   ` Yuriy M. Kaminskiy [this message]
2016-02-29  7:12     ` Akshay Adiga

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=m3a8mln0mq.fsf@gmail.com \
    --to=yumkam@gmail.com \
    --cc=util-linux@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox