1. 21 12月, 2006 6 次提交
  2. 18 12月, 2006 1 次提交
  3. 17 12月, 2006 1 次提交
    • L
      Make workqueue bit operations work on "atomic_long_t" · a08727ba
      Linus Torvalds 提交于
      On architectures where the atomicity of the bit operations is handled by
      external means (ie a separate spinlock to protect concurrent accesses),
      just doing a direct assignment on the workqueue data field (as done by
      commit 4594bf15) can cause the
      assignment to be lost due to lack of serialization with the bitops on
      the same word.
      
      So we need to serialize the assignment with the locks on those
      architectures (notably older ARM chips, PA-RISC and sparc32).
      
      So rather than using an "unsigned long", let's use "atomic_long_t",
      which already has a safe assignment operation (atomic_long_set()) on
      such architectures.
      
      This requires that the atomic operations use the same atomicity locks as
      the bit operations do, but that is largely the case anyway.  Sparc32
      will probably need fixing.
      
      Architectures (including modern ARM with LL/SC) that implement sane
      atomic operations for SMP won't see any of this matter.
      
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: David Miller <davem@davemloft.com>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Linux Arch Maintainers <linux-arch@vger.kernel.org>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a08727ba
  4. 16 12月, 2006 2 次提交
  5. 14 12月, 2006 29 次提交
    • F
      input/hid: Supporting more keys from the HUT Consumer Page · 1c1e40b5
      Florian Festi 提交于
      On USB keyboards lots of hot/internet keys are not working. This patch
      adds support for a number of keys from the USB HID Usage Table
      (http://www.usb.org/developers/devclass_docs/Hut1_12.pdf).
      
      It also adds several new key codes. Most of them are used on real world
      keyboards I know. I added some others (KEY_+ EDITOR, GRAPHICSEDITOR, DATABASE,
      NEWS, VOICEMAIL, VIDEOPHONE) to avoid "holes".
      
      I also added KEY_ZOOMRESET as it is possible to have a inet keyboard and a
      remote control  in parallel and it makes sense to have them behave differently.
      Signed-off-by: NFlorian Festi <ffesti@redhat.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      1c1e40b5
    • P
      [NETFILTER]: bridge-netfilter: remove deferred hooks · 2bf540b7
      Patrick McHardy 提交于
      Remove the deferred hooks and all related code as scheduled in
      feature-removal-schedule.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2bf540b7
    • S
      Driver core: Make platform_device_add_data accept a const pointer · 6eefd34f
      Scott Wood 提交于
      platform_device_add_data() makes a copy of the data that is given to it,
      and thus the parameter can be const.  This removes a warning when data
      from get_property() on powerpc is handed to platform_device_add_data(),
      as get_property() returns a const pointer.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6eefd34f
    • R
      [PATCH] Add missing KORENIX PCI ID's · aef6fba4
      Russell King 提交于
      Oops, sorry about that.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      aef6fba4
    • A
      [PATCH] Pass vma argument to copy_user_highpage(). · 9de455b2
      Atsushi Nemoto 提交于
      To allow a more effective copy_user_highpage() on certain architectures,
      a vma argument is added to the function and cow_user_page() allowing
      the implementation of these functions to check for the VM_EXEC bit.
      
      The main part of this patch was originally written by Ralf Baechle;
      Atushi Nemoto did the the debugging.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9de455b2
    • A
      [PATCH] Fix COW D-cache aliasing on fork · 77fff4ae
      Atsushi Nemoto 提交于
      Problem:
      
      1. There is a process containing two thread (T1 and T2).  The
         thread T1 calls fork().  Then dup_mmap() function called on T1 context.
      
      static inline int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
      	...
      	flush_cache_mm(current->mm);
      	...	/* A */
      	(write-protect all Copy-On-Write pages)
      	...	/* B */
      	flush_tlb_mm(current->mm);
      	...
      
      2. When preemption happens between A and B (or on SMP kernel), the
         thread T2 can run and modify data on COW pages without page fault
         (modified data will stay in cache).
      
      3. Some time after fork() completed, the thread T2 may cause a page
         fault by write-protect on a COW page.
      
      4. Then data of the COW page will be copied to newly allocated
         physical page (copy_cow_page()).  It reads data via kernel mapping.
         The kernel mapping can have different 'color' with user space
         mapping of the thread T2 (dcache aliasing).  Therefore
         copy_cow_page() will copy stale data.  Then the modified data in
         cache will be lost.
      
      In order to allow architecture code to deal with this problem allow
      architecture code to override copy_user_highpage() by defining
      __HAVE_ARCH_COPY_USER_HIGHPAGE in <asm/page.h>.
      
      The main part of this patch was originally written by Ralf Baechle;
      Atushi Nemoto did the the debugging.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      77fff4ae
    • R
      [PATCH] getting rid of all casts of k[cmz]alloc() calls · 5cbded58
      Robert P. J. Day 提交于
      Run this:
      
      	#!/bin/sh
      	for f in $(grep -Erl "\([^\)]*\) *k[cmz]alloc" *) ; do
      	  echo "De-casting $f..."
      	  perl -pi -e "s/ ?= ?\([^\)]*\) *(k[cmz]alloc) *\(/ = \1\(/" $f
      	done
      
      And then go through and reinstate those cases where code is casting pointers
      to non-pointers.
      
      And then drop a few hunks which conflicted with outstanding work.
      
      Cc: Russell King <rmk@arm.linux.org.uk>, Ian Molton <spyro@f2s.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: Paul Fulghum <paulkf@microgate.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Karsten Keil <kkeil@suse.de>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Neil Brown <neilb@cse.unsw.edu.au>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5cbded58
    • G
      [PATCH] fbdev: remove references to non-existent fbmon_valid_timings() · 31619862
      Geert Uytterhoeven 提交于
      Remove references to non-existent fbmon_valid_timings()
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: James Simmons <jsimmons@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      31619862
    • J
      [PATCH] knfsd: nfsd4: reorganize compound ops · b591480b
      J.Bruce Fields 提交于
      Define an op descriptor struct, use it to simplify nfsd4_proc_compound().
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b591480b
    • J
      [PATCH] knfsd: nfsd4: move replay_owner to cstate · a4f1706a
      J.Bruce Fields 提交于
      Tuck away the replay_owner in the cstate while we're at it.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a4f1706a
    • J
      [PATCH] knfsd: nfsd4: pass saved and current fh together into nfsd4 operations · ca364317
      J.Bruce Fields 提交于
      Pass the saved and current filehandles together into all the nfsd4 compound
      operations.
      
      I want a unified interface to these operations so we can just call them by
      pointer and throw out the huge switch statement.
      
      Also I'll eventually want a structure like this--that holds the state used
      during compound processing--for deferral.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ca364317
    • J
      [PATCH] knfsd: nfsd4: clarify units of COMPOUND_SLACK_SPACE · e5710199
      J.Bruce Fields 提交于
      A comment here incorrectly states that "slack_space" is measured in words, not
      bytes.  Remove the comment, and adjust a variable name and a few comments to
      clarify the situation.
      
      This is pure cleanup; there should be no change in functionality.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e5710199
    • E
      [PATCH] ncpfs: Use struct pid to track the userspace watchdog process · 2154227a
      Eric W. Biederman 提交于
      This patch converts the tracking of the user space watchdog process from using
      a pid_t to use struct pid.  This makes us safe from pid wrap around issues and
      prepares the way for the pid namespace.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: Petr Vandrovec <VANDROVE@vc.cvut.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2154227a
    • E
      [PATCH] smbfs: Make conn_pid a struct pid · a71113da
      Eric W. Biederman 提交于
      smbfs keeps track of the user space server process in conn_pid.  This converts
      that track to use a struct pid instead of pid_t.  This keeps us safe from pid
      wrap around issues and prepares the way for the pid namespace.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a71113da
    • E
      [PATCH] n_r3964: Use struct pid to track user space clients · 3cec556a
      Eric W. Biederman 提交于
      Currently this driver tracks user space clients it should send signals to.  In
      the presenct of file descriptor passing this is appears susceptible to
      confusion from pid wrap around issues.
      
      Replacing this with a struct pid prevents us from getting confused, and
      prepares for a pid namespace implementation.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3cec556a
    • A
      [PATCH] lockd endianness annotations · e8c5c045
      Al Viro 提交于
      Annotated, all places switched to keeping status net-endian.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Acked-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e8c5c045
    • R
      [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() · cd861280
      Robert P. J. Day 提交于
      All kcalloc() calls of the form "kcalloc(1,...)" are converted to the
      equivalent kzalloc() calls, and a few kcalloc() calls with the incorrect
      ordering of the first two arguments are fixed.
      Signed-off-by: NRobert P. J. Day <rpjday@mindspring.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Cc: Adam Belay <ambx1@neo.rr.com>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Mark Fasheh <mark.fasheh@oracle.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: Neil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cd861280
    • I
      [PATCH] lockdep: print irq-trace info on asserts · 3117df04
      Ingo Molnar 提交于
      When we print an assert due to scheduling-in-atomic bugs, and if lockdep
      is enabled, then the IRQ tracing information of lockdep can be printed
      to pinpoint the code location that disabled interrupts. This saved me
      quite a bit of debugging time in cases where the backtrace did not
      identify the irq-disabling site well enough.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3117df04
    • I
      [PATCH] debug: add sysrq_always_enabled boot option · 5d6f647f
      Ingo Molnar 提交于
      Most distributions enable sysrq support but set it to 0 by default.  Add a
      sysrq_always_enabled boot option to always-enable sysrq keys.  Useful for
      debugging - without having to modify the disribution's config files (which
      might not be possible if the kernel is on a live CD, etc.).
      
      Also, while at it, clean up the sysrq interfaces.
      
      [bunk@stusta.de: make sysrq_always_enabled_setup() static]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5d6f647f
    • C
      [PATCH] optimize o_direct on block devices · e61c9018
      Chen, Kenneth W 提交于
      Implement block device specific .direct_IO method instead of going through
      generic direct_io_worker for block device.
      
      direct_io_worker() is fairly complex because it needs to handle O_DIRECT on
      file system, where it needs to perform block allocation, hole detection,
      extents file on write, and tons of other corner cases.  The end result is
      that it takes tons of CPU time to submit an I/O.
      
      For block device, the block allocation is much simpler and a tight triple
      loop can be written to iterate each iovec and each page within the iovec in
      order to construct/prepare bio structure and then subsequently submit it to
      the block layer.  This significantly speeds up O_D on block device.
      
      [akpm@osdl.org: small speedup]
      Signed-off-by: NKen Chen <kenneth.w.chen@intel.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e61c9018
    • V
      [PATCH] relative atime · 47ae32d6
      Valerie Henson 提交于
      Add "relatime" (relative atime) support.  Relative atime only updates the
      atime if the previous atime is older than the mtime or ctime.  Like
      noatime, but useful for applications like mutt that need to know when a
      file has been read since it was last modified.
      
      A corresponding patch against mount(8) is available at
      http://userweb.kernel.org/~akpm/mount-relative-atime.txtSigned-off-by: NValerie Henson <val_henson@linux.intel.com>
      Cc: Mark Fasheh <mark.fasheh@oracle.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Karel Zak <kzak@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      47ae32d6
    • R
      [PATCH] PM: Fix SMP races in the freezer · 8a102eed
      Rafael J. Wysocki 提交于
      Currently, to tell a task that it should go to the refrigerator, we set the
      PF_FREEZE flag for it and send a fake signal to it.  Unfortunately there
      are two SMP-related problems with this approach.  First, a task running on
      another CPU may be updating its flags while the freezer attempts to set
      PF_FREEZE for it and this may leave the task's flags in an inconsistent
      state.  Second, there is a potential race between freeze_process() and
      refrigerator() in which freeze_process() running on one CPU is reading a
      task's PF_FREEZE flag while refrigerator() running on another CPU has just
      set PF_FROZEN for the same task and attempts to reset PF_FREEZE for it.  If
      the refrigerator wins the race, freeze_process() will state that PF_FREEZE
      hasn't been set for the task and will set it unnecessarily, so the task
      will go to the refrigerator once again after it's been thawed.
      
      To solve first of these problems we need to stop using PF_FREEZE to tell
      tasks that they should go to the refrigerator.  Instead, we can introduce a
      special TIF_*** flag and use it for this purpose, since it is allowed to
      change the other tasks' TIF_*** flags and there are special calls for it.
      
      To avoid the freeze_process()-refrigerator() race we can make
      freeze_process() to always check the task's PF_FROZEN flag after it's read
      its "freeze" flag.  We should also make sure that refrigerator() will
      always reset the task's "freeze" flag after it's set PF_FROZEN for it.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8a102eed
    • E
      [PATCH] SLAB: use a multiply instead of a divide in obj_to_index() · 6a2d7a95
      Eric Dumazet 提交于
      When some objects are allocated by one CPU but freed by another CPU we can
      consume lot of cycles doing divides in obj_to_index().
      
      (Typical load on a dual processor machine where network interrupts are
      handled by one particular CPU (allocating skbufs), and the other CPU is
      running the application (consuming and freeing skbufs))
      
      Here on one production server (dual-core AMD Opteron 285), I noticed this
      divide took 1.20 % of CPU_CLK_UNHALTED events in kernel.  But Opteron are
      quite modern cpus and the divide is much more expensive on oldest
      architectures :
      
      On a 200 MHz sparcv9 machine, the division takes 64 cycles instead of 1
      cycle for a multiply.
      
      Doing some math, we can use a reciprocal multiplication instead of a divide.
      
      If we want to compute V = (A / B)  (A and B being u32 quantities)
      we can instead use :
      
      V = ((u64)A * RECIPROCAL(B)) >> 32 ;
      
      where RECIPROCAL(B) is precalculated to ((1LL << 32) + (B - 1)) / B
      
      Note :
      
      I wrote pure C code for clarity. gcc output for i386 is not optimal but
      acceptable :
      
      mull   0x14(%ebx)
      mov    %edx,%eax // part of the >> 32
      xor     %edx,%edx // useless
      mov    %eax,(%esp) // could be avoided
      mov    %edx,0x4(%esp) // useless
      mov    (%esp),%ebx
      
      [akpm@osdl.org: small cleanups]
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6a2d7a95
    • P
      [PATCH] cpuset: rework cpuset_zone_allowed api · 02a0e53d
      Paul Jackson 提交于
      Elaborate the API for calling cpuset_zone_allowed(), so that users have to
      explicitly choose between the two variants:
      
        cpuset_zone_allowed_hardwall()
        cpuset_zone_allowed_softwall()
      
      Until now, whether or not you got the hardwall flavor depended solely on
      whether or not you or'd in the __GFP_HARDWALL gfp flag to the gfp_mask
      argument.
      
      If you didn't specify __GFP_HARDWALL, you implicitly got the softwall
      version.
      
      Unfortunately, this meant that users would end up with the softwall version
      without thinking about it.  Since only the softwall version might sleep,
      this led to bugs with possible sleeping in interrupt context on more than
      one occassion.
      
      The hardwall version requires that the current tasks mems_allowed allows
      the node of the specified zone (or that you're in interrupt or that
      __GFP_THISNODE is set or that you're on a one cpuset system.)
      
      The softwall version, depending on the gfp_mask, might allow a node if it
      was allowed in the nearest enclusing cpuset marked mem_exclusive (which
      requires taking the cpuset lock 'callback_mutex' to evaluate.)
      
      This patch removes the cpuset_zone_allowed() call, and forces the caller to
      explicitly choose between the hardwall and the softwall case.
      
      If the caller wants the gfp_mask to determine this choice, they should (1)
      be sure they can sleep or that __GFP_HARDWALL is set, and (2) invoke the
      cpuset_zone_allowed_softwall() routine.
      
      This adds another 100 or 200 bytes to the kernel text space, due to the few
      lines of nearly duplicate code at the top of both cpuset_zone_allowed_*
      routines.  It should save a few instructions executed for the calls that
      turned into calls of cpuset_zone_allowed_hardwall, thanks to not having to
      set (before the call) then check (within the call) the __GFP_HARDWALL flag.
      
      For the most critical call, from get_page_from_freelist(), the same
      instructions are executed as before -- the old cpuset_zone_allowed()
      routine it used to call is the same code as the
      cpuset_zone_allowed_softwall() routine that it calls now.
      
      Not a perfect win, but seems worth it, to reduce this chance of hitting a
      sleeping with irq off complaint again.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      02a0e53d
    • C
      [PATCH] More slab.h cleanups · 55935a34
      Christoph Lameter 提交于
      More cleanups for slab.h
      
      1. Remove tabs from weird locations as suggested by Pekka
      
      2. Drop the check for NUMA and SLAB_DEBUG from the fallback section
         as suggested by Pekka.
      
      3. Uses static inline for the fallback defs as also suggested by Pekka.
      
      4. Make kmem_ptr_valid take a const * argument.
      
      5. Separate the NUMA fallback definitions from the kmalloc_track fallback
         definitions.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      55935a34
    • C
      [PATCH] Cleanup slab headers / API to allow easy addition of new slab allocators · 2e892f43
      Christoph Lameter 提交于
      This is a response to an earlier discussion on linux-mm about splitting
      slab.h components per allocator.  Patch is against 2.6.19-git11.  See
      http://marc.theaimsgroup.com/?l=linux-mm&m=116469577431008&w=2
      
      This patch cleans up the slab header definitions.  We define the common
      functions of slob and slab in slab.h and put the extra definitions needed
      for slab's kmalloc implementations in <linux/slab_def.h>.  In order to get
      a greater set of common functions we add several empty functions to slob.c
      and also rename slob's kmalloc to __kmalloc.
      
      Slob does not need any special definitions since we introduce a fallback
      case.  If there is no need for a slab implementation to provide its own
      kmalloc mess^H^H^Hacros then we simply fall back to __kmalloc functions.
      That is sufficient for SLOB.
      
      Sort the function in slab.h according to their functionality.  First the
      functions operating on struct kmem_cache * then the kmalloc related
      functions followed by special debug and fallback definitions.
      
      Also redo a lot of comments.
      
      Signed-off-by: Christoph Lameter <clameter@sgi.com>?
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2e892f43
    • E
      [PATCH] reorder struct pipe_buf_operations · 6a8ba9d1
      Eric Dumazet 提交于
      Fields of struct pipe_buf_operations have not a precise layout (ie not
      optimized to fit cache lines nor reduce cache line ping pongs)
      
      The bufs[] array is *large* and is placed near the beginning of the
      structure, so all following fields have a large offset.  This is
      unfortunate because many archs have smaller instructions when using small
      offsets relative to a base register.  On x86 for example, 7 bits offsets
      have smaller instruction lengths.
      
      Moving bufs[] at the end of pipe_buf_operations permits all fields to have
      small offsets, and reduce text size, and icache pressure.
      
      # size vmlinux.pre vmlinux
          text    data     bss     dec     hex filename
      3268989  664356  492196 4425541  438745 vmlinux.pre
      3268765  664356  492196 4425317  438665 vmlinux
      
      So this patch reduces text size by 224 bytes on my x86_64 machine. Similar
      results on ia32.
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6a8ba9d1
    • E
      [PATCH] Revert "[PATCH] identifier to nsproxy" · 5f8442ed
      Eric W. Biederman 提交于
      This reverts commit 373beb35.
      
      No one is using this identifier yet.  The purpose of this identifier is to
      export nsproxy to user space which is wrong.  nsproxy is an internal
      implementation optimization, which should keep our fork times from getting
      slower as we increase the number of global namespaces you don't have to
      share.
      
      Adding a global identifier like this is inappropriate because it makes
      namespaces inherently non-recursive, greatly limiting what we can do with
      them in the future.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: Cedric Le Goater <clg@fr.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5f8442ed
    • E
      [PATCH] constify pipe_buf_operations · d4c3cca9
      Eric Dumazet 提交于
      - pipe/splice should use const pipe_buf_operations and file_operations
      
      - struct pipe_inode_info has an unused field "start" : get rid of it.
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d4c3cca9
  6. 13 12月, 2006 1 次提交