LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Olaf Hering <olaf@aepfle.de>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] reject taskset for kernel threads
Date: Thu, 22 Mar 2007 22:28:25 +0100	[thread overview]
Message-ID: <20070322212825.GA12297@aepfle.de> (raw)
In-Reply-To: <20070321145027.c76121dc.akpm@linux-foundation.org>

On Wed, Mar 21, Andrew Morton wrote:

> On Wed, 21 Mar 2007 21:53:53 +0100
> Olaf Hering <olaf@aepfle.de> wrote:
> 
> > 
> > Do not allow taskset for kernel threads.
> > These commands will cause oopses due to stack corruption:
> > 
> > ls /proc/*/task | grep -v ^/ | xargs echo | xargs -n1 taskset -pc 2-9
> > taskset -pc 1 $$
> > taskset -pc 0 $((pidof john))
> 
> Why does the kernel oops?

I guess I have to find out. Sometimes it just deadlocks.
Linus tree (+patches) crashes nicely and loops in xmon exceptions, see below.

#/bin/bash
numcpus=`grep -Ec '^cpu[0-9]' /proc/stat || echo 1`
forked=
john=
for i in `seq 1 $numcpus`
do
        echo $i
        bash -c 'declare -i x=1 ; while test $x != 0 ; do : $(( x++ )) ; done' &
        forked="$forked $!"
done
echo "forked $forked"
nice -n -19 bash -c 'declare -i x=1 ; while test $x != 0 ; do : $(( x++ )) ; done' &
john=$!
sleep 3
ls -A /proc/*/task | grep -v ^/ | xargs echo | xargs -n1 taskset -pc 2-$numcpus
taskset -pc 2 $$
taskset -pc 0 $john
sleep 3
kill $forked $john



...
pid 4796's new affinity list: 2,3
pid 4797's current affinity list: 0-3
Page fault in user mode within_atomic() = 0 mm = 0000000000000000
NIP = fd8e590  MSR = 4000f032
cpu 0x1: Vector: 401 (Instruction Access) at [c0000000e9dfbea0]
    pc: 000000000fd8e590
    lr: 000000000fdf3cec
    sp: ffc2
            0c90
   msr: 4000f032
  current = 0xc0000000e74e2800
  paca    = 0xc0000000005b3000
    pid   = 4797, comm = bash
cpu 0x2: Vector: 400 (Instr------------[ cuut here ]--------c----
tion Access) at [c0000000e9dfb380]
cpu 0x2: Vector: 3865000000000400  at [c0000000e9dfac60]
    pc: c0000000e9dfae00
    lr: c0000000e9dfae00
    sp: c0000000e9dfaee0
   msr: c0000000004e6220
  cur e?n tfeorr  ?h eflopr
shxl 0 0pacfScP2 0(cf9f0c)2 0ics9 0i)n  iuss eirns puasceer
 pac h
  p1i:dm o n >=  4797, comm = bash
cpu 0x2: Exception 3835360000000400  in xmon, returning to main loop
cpu 0x2: Vector: 300 (Data Access) at [c0000000e9dfac10]
...

  reply	other threads:[~2007-03-22 21:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-21 20:53 Olaf Hering
2007-03-21 21:50 ` Andrew Morton
2007-03-22 21:28   ` Olaf Hering [this message]
2007-03-22 23:01   ` Olaf Hering

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=20070322212825.GA12297@aepfle.de \
    --to=olaf@aepfle.de \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --subject='Re: [PATCH] reject taskset for kernel threads' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).