1. 09 8月, 2007 3 次提交
    • P
      sched: simplify move_tasks() · 43010659
      Peter Williams 提交于
      The move_tasks() function is currently multiplexed with two distinct
      capabilities:
      
      1. attempt to move a specified amount of weighted load from one run
      queue to another; and
      2. attempt to move a specified number of tasks from one run queue to
      another.
      
      The first of these capabilities is used in two places, load_balance()
      and load_balance_idle(), and in both of these cases the return value of
      move_tasks() is used purely to decide if tasks/load were moved and no
      notice of the actual number of tasks moved is taken.
      
      The second capability is used in exactly one place,
      active_load_balance(), to attempt to move exactly one task and, as
      before, the return value is only used as an indicator of success or failure.
      
      This multiplexing of sched_task() was introduced, by me, as part of the
      smpnice patches and was motivated by the fact that the alternative, one
      function to move specified load and one to move a single task, would
      have led to two functions of roughly the same complexity as the old
      move_tasks() (or the new balance_tasks()).  However, the new modular
      design of the new CFS scheduler allows a simpler solution to be adopted
      and this patch addresses that solution by:
      
      1. adding a new function, move_one_task(), to be used by
      active_load_balance(); and
      2. making move_tasks() a single purpose function that tries to move a
      specified weighted load and returns 1 for success and 0 for failure.
      
      One of the consequences of these changes is that neither move_one_task()
      or the new move_tasks() care how many tasks sched_class.load_balance()
      moves and this enables its interface to be simplified by returning the
      amount of load moved as its result and removing the load_moved pointer
      from the argument list.  This helps simplify the new move_tasks() and
      slightly reduces the amount of work done in each of
      sched_class.load_balance()'s implementations.
      
      Further simplification, e.g. changes to balance_tasks(), are possible
      but (slightly) complicated by the special needs of load_balance_fair()
      so I've left them to a later patch (if this one gets accepted).
      
      NB Since move_tasks() gets called with two run queue locks held even
      small reductions in overhead are worthwhile.
      
      [ mingo@elte.hu ]
      
      this change also reduces code size nicely:
      
         text    data     bss     dec     hex filename
         39216    3618      24   42858    a76a sched.o.before
         39173    3618      24   42815    a73f sched.o.after
      Signed-off-by: NPeter Williams <pwil3058@bigpond.net.au>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      43010659
    • I
      sched: reorder update_cpu_load(rq) with the ->task_tick() call · f1a438d8
      Ingo Molnar 提交于
      Peter Williams suggested to flip the order of update_cpu_load(rq) with
      the ->task_tick() call. This is a NOP for the current scheduler (the
      two functions are independent of each other), ->task_tick() might
      create some state for update_cpu_load() in the future (or in PlugSched).
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f1a438d8
    • I
      sched: batch sleeper bonus · 0915c4e8
      Ingo Molnar 提交于
      batch up the sleeper bonus sum a bit more. Anything below
      sched-granularity is too small to make a practical difference
      anyway.
      
      this optimization reduces the math in high-frequency scheduling
      scenarios.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0915c4e8
  2. 07 8月, 2007 9 次提交
  3. 06 8月, 2007 3 次提交
  4. 05 8月, 2007 5 次提交
  5. 04 8月, 2007 20 次提交
    • S
      [SCSI] aacraid: prevent panic on adapter resource failure · 2b053729
      Salyzyn, Mark 提交于
      If the driver fails to allocate the contiguous (DMAable) memory for
      system reasons, we fail to load the instance, but then we try to free
      the <nul> allocation in the cleanup code and we get a panic in
      pci_free_consistent(). This is reported against an older kernel, hope
      this is relevant for latest/greatest.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      2b053729
    • B
      [SCSI] aha152x: use data accessors and !use_sg cleanup · 2338545a
      Boaz Harrosh 提交于
      And finally this is the regular !use_sg cleanup
      and use of data accessors.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      2338545a
    • B
      [SCSI] aha152x: Fix check_condition code-path · 45333ffa
      Boaz Harrosh 提交于
      check_condition code-path was similar but more
      complicated to Reset. It went like this:
      
        1. extra space was allocated at aha152x_scdata for mirroring
          scsi_cmnd members.
        2. At aha152x_internal_queue() every not check_condition
          (REQUEST_SENSE) command was copied to above members in
          case of error.
        3. At busfree_run() in the DONE_CS phase if a Status of
          SAM_STAT_CHECK_CONDITION was detected. The command was
          re-queued Internally using aha152x_internal_queue(,,check_condition,)
          The old command members are over written with the
          REQUEST_SENSE info.
        4. At busfree_run() in the DONE_CS phase again. If it is a
          check_condition command, info was restored from mirror
          made at first call to aha152x_internal_queue() (see 2)
          and the command is completed.
      
      What I did is:
      
        1. Allocate less space in aha152x_scdata only for the 16-byte
          original command. (which is actually not needed by scsi-ml
          anymore at this stage. But this is to much knowledge of scsi-ml)
        2. If Status == SAM_STAT_CHECK_CONDITION, then like before
           re-queue a REQUEST_SENSE command. But only now save original
           command members. (Less of them)
        3. In aha152x_internal_queue(), just like for Reset, use the
          check_condition hint to set differently the working members.
          execute the command.
        4. At busfree_run() in the DONE_CS phase again. restore needed
           members.
      
      While at it. This patch fixes a BUG. Old code when sending
      a REQUEST_SENSE for a failed command. Would than return with
      cmd->resid == 0 which was the status of the REQUEST_SENSE.
      The failing command resid was lost. And when would resid
      be interesting if not on a failing command?
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      45333ffa
    • B
      [SCSI] aha152x: Clean Reset path · 66acdb03
      Boaz Harrosh 提交于
      What Reset code was doing:  Save command's important/dangerous
      Info on stack. NULL those members from scsi_cmnd.
      Issue a Reset. wait for it to finish than restore members
      and return.
      
      What I do is save or NULL nothing. But use the "resetting"
      hint in aha152x_internal_queue() to NULL out working members
      and leave struct scsi_cmnd alone.
      
      The indent here looks funny but it will change/drop in last
      patch and it is clear this way what changed.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      66acdb03
    • B
      [SCSI] aha152x: preliminary fixes and some comments · 0ceb4798
      Boaz Harrosh 提交于
        hunk by hunk:
        - CHECK_CONDITION is what happens to cmnd->status >> 1
          or after status_byte() macro. But here it is used
          directly on status which means 0x1 which is an undefined
          bit in the standard. And is a status that will never
          return from a target.
      
        - in busfree_run at the DONE_SC phase we have 3 distinct
          operation:
      	1-if(DONE_SC->SCp.phase & check_condition)
                The REQUEST_SENSE command return.
                - Restore original command
      	  - Than continue to operation 3.
      	2-if(DONE_SC->SCp.Status==SAM_STAT_CHECK_CONDITION)
                A regular command returned with a status.
      	  - Internally re-Q a REQUEST_SENSE.
      	  - Do not do operation 3.
      	3-
      	  - Complete the command and return it to scsi-ml
           So the 0x2 in both these operations (1,2) means the scsi
           check-condition status, hence SAM_STAT_CHECK_CONDITION
      
        - Here the code asks about !(DONE_SC->SCp.Status & not_issued)
          but "not_issued" is an enum belonging to the "phase" member
          and not to the Status returned from target. The reason this
          works is because not_issued==1 and Also CHECK_CONDITION==1
          (remember from hunk 1). So actually the code was asking
          !(DONE_SC->SCp.Status & CHECK_CONDITION). Which means
          "Has the status been read from target yet?"
          Staus is read at status_run(). "not_issued" is
          cleared in seldo_run() which is usually earlier than
          status_run().
      
        So this patch does nothing as far as assembly is concerned
        but it does let the reader understand what is going on.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      0ceb4798
    • B
      [SCSI] aha152x: use bounce buffer · b1ee0795
      Boaz Harrosh 提交于
      Cause highmem buffers to be bounced to low memory until this
      driver supports highmem addresses.  Otherwise it just oopses
      on NULL buffer addresses.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      b1ee0795
    • B
      [SCSI] aha152x: fix debug mode symbol conflict · 50535df3
      Boaz Harrosh 提交于
      The symbol <debug_locks> conflicts with the rather global one in
      include/linux/locks.h.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      50535df3
    • J
      [SCSI] sd: disentangle barriers in SCSI · 03a5743a
      James Bottomley 提交于
      Our current implementation has a generic set of barrier functions that
      go through the SCSI driver model.  Realistically, this is unnecessary,
      because the only device that can use barriers (sd) can set the flush
      functions up at probe or revalidate time.  This patch pulls the barrier
      functions out of the mid layer and scsi driver model and relocates them
      directly in sd.
      Acked-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      03a5743a
    • M
      [BNX2]: Fix suspend/resume problem. · 6caebb02
      Michael Chan 提交于
      The device would not resume properly if it was shutdown before the system
      was suspended.  In such scenario where the netif_running state is 0,
      bnx2_suspend() would not save the PCI state and so the memory enable bit
      and bus master enable bit would be lost.
      
      We fix this by always saving and restoring the PCI state in
      bnx2_suspend() and bnx2_resume() regardless of netif_running() state.
      
      Update version to 1.6.4.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6caebb02
    • M
      [TG3]: Fix suspend/resume problem. · 3e0c95fd
      Michael Chan 提交于
      Joachim Deguara <joachim.deguara@amd.com> reported that tg3 devices
      would not resume properly if the device was shutdown before the system
      was suspended.  In such scenario where the netif_running state is 0,
      tg3_suspend() would not save the PCI state and so the memory enable bit
      and bus master enable bit would be lost.
      
      We fix this by always saving and restoring the PCI state in
      tg3_suspend() and tg3_resume() regardless of netif_running() state.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3e0c95fd
    • L
      Linux 2.6.23-rc2 · d4ac2477
      Linus Torvalds 提交于
      d4ac2477
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · 22da3176
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        [POWERPC] Fixes for the SLB shadow buffer code
        [POWERPC] Fix a compile warning in powermac/feature.c
        [POWERPC] Fix a compile warning in pci_32.c
        [POWERPC] Fix parse_drconf_memory() for 64-bit start addresses
        [POWERPC] Fix num_cpus calculation in smp_call_function_map()
        [POWERPC] ps3: Fix section mismatch in ps3/setup.c
        [POWERPC] spufs: Fix affinity after introduction of node_allowed() calls
        [POWERPC] Fix special PTE code for secondary hash bucket
        [POWERPC] Expand RPN field to 34 bits when using 64k pages
      22da3176
    • A
      fix s2io regression · 3e847423
      Al Viro 提交于
       * wrong argument passed to pci_unmap_single() on failure
         exit paths
       * leak in the same area
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3e847423
    • L
      Merge git://git.infradead.org/~dwmw2/mtd-2.6.23 · c73d8347
      Linus Torvalds 提交于
      * git://git.infradead.org/~dwmw2/mtd-2.6.23:
        [MTD] Makefile fix for mtdsuper
      c73d8347
    • L
      Merge git://git.infradead.org/battery-2.6 · 195be1c2
      Linus Torvalds 提交于
      * git://git.infradead.org/battery-2.6:
        Don't compile the PMU power driver on 64-bit PowerPC
      195be1c2
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.23 · 34bac238
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.23:
        sh: fix defconfigs for sh7751r boards
        sh: fix cf support on r2d boards
        sh: update r2d defconfig
        sh: update snapgear defconfig.
        sh: Fix SH-X3 FPU exception handling.
        sh: Fix pgd mismatch from cached TTB in unhandled fault.
        sh: Don't include fault-nommu on SH-2/SH-2A.
        sh: Fix irqflags tracing for SH-3/4 nommu.
        sh: Fix lockdep debugging oops on SH-3/4.
      34bac238
    • O
      Kill some obsolete sub-thread-ptrace stuff · 24728448
      Oleg Nesterov 提交于
      There is a couple of subtle checks which were needed to handle ptracing from
      the same thread group. This was deprecated a long ago, imho this code just
      complicates the understanding.
      
      And, the "->parent->signal->flags & SIGNAL_GROUP_EXIT" check in exit_notify()
      is not right. SIGNAL_GROUP_EXIT can mean exec(), not exit_group(). This means
      ptracer can lose a ptraced zombie on exec(). Minor problem, but still the bug.
      Signed-off-by: NOleg Nesterov <oleg@tv-sign.ru>
      Acked-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      24728448
    • D
      serial: fix 8250 early console setup · b6b1d877
      Daniel Ritz 提交于
      the early setup function serial8250_console_early_setup() can be called
      from non __init code (eg. hotpluggable serial ports like serial_cs) so
      remove the __init from the call chain to avoid crashes.
      Signed-off-by: NDaniel Ritz <daniel.ritz@gmx.ch>
      Cc: Yinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b6b1d877
    • L
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · 1a3f2ea3
      Linus Torvalds 提交于
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC]: Fix O_CLOEXEC values.
        [SPARC32]: Fix modular build of floppy driver.
        [SOUND] CS4231 SBus: Two fixes.
        [CG6]: fix memory size detection
        [SPARC64]: Add missing dma_sync_single_range_for_*().
      1a3f2ea3
    • L
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · e1d7e7fc
      Linus Torvalds 提交于
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [TCP]: DSACK signals data receival, be conservative
        [TCP]: Also handle snd_una changes in tcp_cwnd_down
        [TIPC]: Fix two minor sparse warnings.
        [TIPC]: Make function tipc_nameseq_subscribe static.
        [PF_KEY]: Fix ipsec not working in 2.6.23-rc1-git10
        [TCP]: Invoke tcp_sendmsg() directly, do not use inet_sendmsg().
        [IPV4] route.c: mostly kmalloc + memset conversion to k[cz]alloc
        [IPV4] raw.c: kmalloc + memset conversion to kzalloc
        [NETFILTER] nf_conntrack_l3proto_ipv4_compat.c: kmalloc + memset conversion to kzalloc
        [NETFILTER] nf_conntrack_expect.c: kmalloc + memset conversion to kzalloc
        [NET]: Removal of duplicated include net/wanrouter/wanmain.c
        SCTP: remove useless code in function sctp_init_cause
        SCTP: drop SACK if ctsn is not less than the next tsn of assoc
        SCTP: IPv4 mapped addr not returned in SCTPv6 accept()
        SCTP: IPv4 mapped addr not returned in SCTPv6 accept()
        sctp: fix shadow symbol in net/sctp/tsnmap.c
        sctp: try to fix readlock
        sctp: remove shadowed symbols
        sctp: move global declaration to header file.
        sctp: make locally used function static
      e1d7e7fc