1. 08 4月, 2014 3 次提交
    • F
      affs: add mount option to avoid filename truncates · 8ca57722
      Fabian Frederick 提交于
      Normal behavior for filenames exceeding specific filesystem limits is to
      refuse operation.
      
      AFFS standard name length being only 30 characters against 255 for usual
      Linux filesystems, original implementation does filename truncate by
      default with a define value AFFS_NO_TRUNCATE which can be enabled but
      needs module compilation.
      
      This patch adds 'nofilenametruncate' mount option so that user can
      easily activate that feature and avoid a lot of problems (eg overwrite
      files ...)
      Signed-off-by: NFabian Frederick <fabf@skynet.be>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8ca57722
    • A
      proc: show mnt_id in /proc/pid/fdinfo · 49d063cb
      Andrey Vagin 提交于
      Currently we don't have a way how to determing from which mount point
      file has been opened.  This information is required for proper dumping
      and restoring file descriptos due to presence of mount namespaces.  It's
      possible, that two file descriptors are opened using the same paths, but
      one fd references mount point from one namespace while the other fd --
      from other namespace.
      
      $ ls -l /proc/1/fd/1
      lrwx------ 1 root root 64 Mar 19 23:54 /proc/1/fd/1 -> /dev/null
      
      $ cat /proc/1/fdinfo/1
      pos:	0
      flags:	0100002
      mnt_id:	16
      
      $ cat /proc/1/mountinfo | grep ^16
      16 32 0:4 / /dev rw,nosuid shared:2 - devtmpfs devtmpfs rw,size=1013356k,nr_inodes=253339,mode=755
      Signed-off-by: NAndrey Vagin <avagin@openvz.org>
      Acked-by: NPavel Emelyanov <xemul@parallels.com>
      Acked-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      49d063cb
    • K
      mm: introduce vm_ops->map_pages() · 8c6e50b0
      Kirill A. Shutemov 提交于
      Here's new version of faultaround patchset.  It took a while to tune it
      and collect performance data.
      
      First patch adds new callback ->map_pages to vm_operations_struct.
      
      ->map_pages() is called when VM asks to map easy accessible pages.
      Filesystem should find and map pages associated with offsets from
      "pgoff" till "max_pgoff".  ->map_pages() is called with page table
      locked and must not block.  If it's not possible to reach a page without
      blocking, filesystem should skip it.  Filesystem should use do_set_pte()
      to setup page table entry.  Pointer to entry associated with offset
      "pgoff" is passed in "pte" field in vm_fault structure.  Pointers to
      entries for other offsets should be calculated relative to "pte".
      
      Currently VM use ->map_pages only on read page fault path.  We try to
      map FAULT_AROUND_PAGES a time.  FAULT_AROUND_PAGES is 16 for now.
      Performance data for different FAULT_AROUND_ORDER is below.
      
      TODO:
       - implement ->map_pages() for shmem/tmpfs;
       - modify get_user_pages() to be able to use ->map_pages() and implement
         mmap(MAP_POPULATE|MAP_NONBLOCK) on top.
      
      =========================================================================
      Tested on 4-socket machine (120 threads) with 128GiB of RAM.
      
      Few real-world workloads. The sweet spot for FAULT_AROUND_ORDER here is
      somewhere between 3 and 5. Let's say 4 :)
      
      Linux build (make -j60)
      FAULT_AROUND_ORDER		Baseline	1		3		4		5		7		9
      	minor-faults		283,301,572	247,151,987	212,215,789	204,772,882	199,568,944	194,703,779	193,381,485
      	time, seconds		151.227629483	153.920996480	151.356125472	150.863792049	150.879207877	151.150764954	151.450962358
      Linux rebuild (make -j60)
      FAULT_AROUND_ORDER		Baseline	1		3		4		5		7		9
      	minor-faults		5,396,854	4,148,444	2,855,286	2,577,282	2,361,957	2,169,573	2,112,643
      	time, seconds		27.404543757	27.559725591	27.030057426	26.855045126	26.678618635	26.974523490	26.761320095
      Git test suite (make -j60 test)
      FAULT_AROUND_ORDER		Baseline	1		3		4		5		7		9
      	minor-faults		129,591,823	99,200,751	66,106,718	57,606,410	51,510,808	45,776,813	44,085,515
      	time, seconds		66.087215026	64.784546905	64.401156567	65.282708668	66.034016829	66.793780811	67.237810413
      
      Two synthetic tests: access every word in file in sequential/random order.
      It doesn't improve much after FAULT_AROUND_ORDER == 4.
      
      Sequential access 16GiB file
      FAULT_AROUND_ORDER		Baseline	1		3		4		5		7		9
       1 thread
      	minor-faults		4,195,437	2,098,275	525,068		262,251		131,170		32,856		8,282
      	time, seconds		7.250461742	6.461711074	5.493859139	5.488488147	5.707213983	5.898510832	5.109232856
       8 threads
      	minor-faults		33,557,540	16,892,728	4,515,848	2,366,999	1,423,382	442,732		142,339
      	time, seconds		16.649304881	9.312555263	6.612490639	6.394316732	6.669827501	6.75078944	6.371900528
       32 threads
      	minor-faults		134,228,222	67,526,810	17,725,386	9,716,537	4,763,731	1,668,921	537,200
      	time, seconds		49.164430543	29.712060103	12.938649729	10.175151004	11.840094583	9.594081325	9.928461797
       60 threads
      	minor-faults		251,687,988	126,146,952	32,919,406	18,208,804	10,458,947	2,733,907	928,217
      	time, seconds		86.260656897	49.626551828	22.335007632	17.608243696	16.523119035	16.339489186	16.326390902
       120 threads
      	minor-faults		503,352,863	252,939,677	67,039,168	35,191,827	19,170,091	4,688,357	1,471,862
      	time, seconds		124.589206333	79.757867787	39.508707872	32.167281632	29.972989292	28.729834575	28.042251622
      Random access 1GiB file
       1 thread
      	minor-faults		262,636		132,743		34,369		17,299		8,527		3,451		1,222
      	time, seconds		15.351890914	16.613802482	16.569227308	15.179220992	16.557356122	16.578247824	15.365266994
       8 threads
      	minor-faults		2,098,948	1,061,871	273,690		154,501		87,110		25,663		7,384
      	time, seconds		15.040026343	15.096933500	14.474757288	14.289129964	14.411537468	14.296316837	14.395635804
       32 threads
      	minor-faults		8,390,734	4,231,023	1,054,432	528,847		269,242		97,746		26,881
      	time, seconds		20.430433109	21.585235358	22.115062928	14.872878951	14.880856305	14.883370649	14.821261690
       60 threads
      	minor-faults		15,733,258	7,892,809	1,973,393	988,266		594,789		164,994		51,691
      	time, seconds		26.577302548	25.692397770	18.728863715	20.153026398	21.619101933	17.745086260	17.613215273
       120 threads
      	minor-faults		31,471,111	15,816,616	3,959,209	1,978,685	1,008,299	264,635		96,010
      	time, seconds		41.835322703	40.459786095	36.085306105	35.313894834	35.814445675	36.552633793	34.289210594
      
      Touch only one page in page table in 16GiB file
      FAULT_AROUND_ORDER		Baseline	1		3		4		5		7		9
       1 thread
      	minor-faults		8,372		8,324		8,270		8,260		8,249		8,239		8,237
      	time, seconds		0.039892712	0.045369149	0.051846126	0.063681685	0.079095975	0.17652406	0.541213386
       8 threads
      	minor-faults		65,731		65,681		65,628		65,620		65,608		65,599		65,596
      	time, seconds		0.124159196	0.488600638	0.156854426	0.191901957	0.242631486	0.543569456	1.677303984
       32 threads
      	minor-faults		262,388		262,341		262,285		262,276		262,266		262,257		263,183
      	time, seconds		0.452421421	0.488600638	0.565020946	0.648229739	0.789850823	1.651584361	5.000361559
       60 threads
      	minor-faults		491,822		491,792		491,723		491,711		491,701		491,691		491,825
      	time, seconds		0.763288616	0.869620515	0.980727360	1.161732354	1.466915814	3.04041448	9.308612938
       120 threads
      	minor-faults		983,466		983,655		983,366		983,372		983,363		984,083		984,164
      	time, seconds		1.595846553	1.667902182	2.008959376	2.425380942	2.941368804	5.977807890	18.401846125
      
      This patch (of 2):
      
      Introduce new vm_ops callback ->map_pages() and uses it for mapping easy
      accessible pages around fault address.
      
      On read page fault, if filesystem provides ->map_pages(), we try to map up
      to FAULT_AROUND_PAGES pages around page fault address in hope to reduce
      number of minor page faults.
      
      We call ->map_pages first and use ->fault() as fallback if page by the
      offset is not ready to be mapped (cold page cache or something).
      Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Ning Qu <quning@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8c6e50b0
  2. 07 4月, 2014 1 次提交
    • J
      f2fs: introduce f2fs_issue_flush to avoid redundant flush issue · 6b4afdd7
      Jaegeuk Kim 提交于
      Some storage devices show relatively high latencies to complete cache_flush
      commands, even though their normal IO speed is prettry much high. In such
      the case, it needs to merge cache_flush commands as much as possible to avoid
      issuing them redundantly.
      So, this patch introduces a mount option, "-o flush_merge", to mitigate such
      the overhead.
      
      If this option is enabled by user, F2FS merges the cache_flush commands and then
      issues just one cache_flush on behalf of them. Once the single command is
      finished, F2FS sends a completion signal to all the pending threads.
      
      Note that, this option can be used under a workload consisting of very intensive
      concurrent fsync calls, while the storage handles cache_flush commands slowly.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      6b4afdd7
  3. 04 4月, 2014 4 次提交
  4. 02 4月, 2014 1 次提交
  5. 01 4月, 2014 1 次提交
  6. 21 3月, 2014 1 次提交
  7. 20 3月, 2014 2 次提交
    • J
      f2fs: change reclaim rate in percentage · 58c41035
      Jaegeuk Kim 提交于
      It is more reasonable to determine the reclaiming rate of prefree segments
      according to the volume size, which is set to 5% by default.
      For example, if the volume is 128GB, the prefree segments are reclaimed
      when the number reaches to 6.4GB.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      58c41035
    • J
      f2fs: throttle the memory footprint with a sysfs entry · cdfc41c1
      Jaegeuk Kim 提交于
      This patch introduces ram_thresh, a sysfs entry, which controls the memory
      footprint used by the free nid list and the nat cache.
      
      Previously, the free nid list was controlled by MAX_FREE_NIDS, while the nat
      cache was managed by NM_WOUT_THRESHOLD.
      However, this approach cannot be applied dynamically according to the system.
      
      So, this patch adds ram_thresh that users can specify the threshold, which is
      in order of 1 / 1024.
      For example, if the total ram size is 4GB and the value is set to 10 by default,
      f2fs tries to control the number of free nids and nat caches not to consume over
      10 * (4GB / 1024) = 10MB.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      cdfc41c1
  8. 27 2月, 2014 2 次提交
    • J
      f2fs: add an sysfs entry to control the directory level · ab9fa662
      Jaegeuk Kim 提交于
      This patch adds an sysfs entry to control dir_level used by the large directory.
      
      The description of this entry is:
      
       dir_level                    This parameter controls the directory level to
      			      support large directory. If a directory has a
      			      number of files, it can reduce the file lookup
      			      latency by increasing this dir_level value.
      			      Otherwise, it needs to decrease this value to
      			      reduce the space overhead. The default value is 0.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      ab9fa662
    • J
      f2fs: introduce large directory support · 38431545
      Jaegeuk Kim 提交于
      This patch introduces an i_dir_level field to support large directory.
      
      Previously, f2fs maintains multi-level hash tables to find a dentry quickly
      from a bunch of chiild dentries in a directory, and the hash tables consist of
      the following tree structure as below.
      
      In Documentation/filesystems/f2fs.txt,
      
      ----------------------
      A : bucket
      B : block
      N : MAX_DIR_HASH_DEPTH
      ----------------------
      
      level #0   | A(2B)
                 |
      level #1   | A(2B) - A(2B)
                 |
      level #2   | A(2B) - A(2B) - A(2B) - A(2B)
           .     |   .       .       .       .
      level #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)
           .     |   .       .       .       .
      level #N   | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B)
      
      But, if we can guess that a directory will handle a number of child files,
      we don't need to traverse the tree from level #0 to #N all the time.
      Since the lower level tables contain relatively small number of dentries,
      the miss ratio of the target dentry is likely to be high.
      
      In order to avoid that, we can configure the hash tables sparsely from level #0
      like this.
      
      level #0   | A(2B) - A(2B) - A(2B) - A(2B)
      
      level #1   | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)
           .     |   .       .       .       .
      level #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)
           .     |   .       .       .       .
      level #N   | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B)
      
      With this structure, we can skip the ineffective tree searches in lower level
      hash tables.
      
      This patch adds just a facility for this by introducing i_dir_level in
      f2fs_inode.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      38431545
  9. 20 2月, 2014 1 次提交
  10. 11 2月, 2014 1 次提交
    • H
      Documentation/: update 00-INDEX files · 3cf8ca1c
      Henrik Austad 提交于
      Some of the 00-INDEX files are somewhat outdated and some folders does
      not contain 00-INDEX at all.  Only outdated (with the notably exception
      of spi) indexes are touched here, the 169 folders without 00-INDEX has
      not been touched.
      
      New 00-INDEX
       - spi/* was added in a series of commits dating back to 2006
      
      Added files (missing in (*/)00-INDEX)
       - dmatest.txt was added by commit 851b7e16 ("dmatest: run test via
         debugfs")
       - this_cpu_ops.txt was added by commit a1b2a555 ("percpu: add
         documentation on this_cpu operations")
       - ww-mutex-design.txt was added by commit 040a0a37 ("mutex: Add
         support for wound/wait style locks")
       - bcache.txt was added by commit cafe5635 ("bcache: A block layer
         cache")
       - kernel-per-CPU-kthreads.txt was added by commit 49717cb4
         ("kthread: Document ways of reducing OS jitter due to per-CPU
         kthreads")
       - phy.txt was added by commit ff764963 ("drivers: phy: add generic
         PHY framework")
       - block/null_blk was added by commit 12f8f4fc ("null_blk:
         documentation")
       - module-signing.txt was added by commit 3cafea30 ("Add
         Documentation/module-signing.txt file")
       - assoc_array.txt was added by commit 3cb98950 ("Add a generic
         associative array implementation.")
       - arm/IXP4xx was part of the initial repo
       - arm/cluster-pm-race-avoidance.txt was added by commit 7fe31d28
         ("ARM: mcpm: introduce helpers for platform coherency exit/setup")
       - arm/firmware.txt was added by commit 7366b92a ("ARM: Add
         interface for registering and calling firmware-specific operations")
       - arm/kernel_mode_neon.txt was added by commit 2afd0a05 ("ARM:
         7825/1: document the use of NEON in kernel mode")
       - arm/tcm.txt was added by commit bc581770 ("ARM: 5580/2: ARM TCM
         (Tightly-Coupled Memory) support v3")
       - arm/vlocks.txt was added by commit 9762f12d ("ARM: mcpm: Add
         baremetal voting mutexes")
       - blackfin/gptimers-example.c, Makefile was added by commit
         4b60779d ("Blackfin: add an example showing how to use the
         gptimers API")
       - devicetree/usage-model.txt was added by commit 31134efc ("dt:
         Linux DT usage model documentation")
       - fb/api.txt was added by commit fb21c2f4 ("fbdev: Add FOURCC-based
         format configuration API")
       - fb/sm501.txt was added by commit e6a04980 ("video, sm501: add
         edid and commandline support")
       - fb/udlfb.txt was added by commit 96f8d864 ("fbdev: move udlfb out
         of staging.")
       - filesystems/Makefile was added by commit 1e0051ae
         ("Documentation/fs/: split txt and source files")
       - filesystems/nfs/nfsd-admin-interfaces.txt was added by commit
         8a4c6e19 ("nfsd: document kernel interfaces for nfsd
         configuration")
       - ide/warm-plug-howto.txt was added by commit f74c9141 ("ide: add
         warm-plug support for IDE devices (take 2)")
       - laptops/Makefile was added by commit d49129ac
         ("Documentation/laptop/: split txt and source files")
       - leds/leds-blinkm.txt was added by commit b54cf35a ("LEDS: add
         BlinkM RGB LED driver, documentation and update MAINTAINERS")
       - leds/ledtrig-oneshot.txt was added by commit 5e417281 ("leds: add
         oneshot trigger")
       - leds/ledtrig-transient.txt was added by commit 44e1e9f8 ("leds:
         add new transient trigger for one shot timer activation")
       - m68k/README.buddha was part of the initial repo
       - networking/LICENSE.(qla3xxx|qlcnic|qlge) was added by commits
         40839129, c4e84bde, 5a4faa87
       - networking/Makefile was added by commit 3794f3e8 ("docsrc: build
         Documentation/ sources")
       - networking/i40evf.txt was added by commit 105bf2fe ("i40evf: add
         driver to kernel build system")
       - networking/ipsec.txt was added by commit b3c6efbc ("xfrm: Add
         file to document IPsec corner case")
       - networking/mac80211-auth-assoc-deauth.txt was added by commit
         3cd7920a ("mac80211: add auth/assoc/deauth flow diagram")
       - networking/netlink_mmap.txt was added by commit 5683264c
         ("netlink: add documentation for memory mapped I/O")
       - networking/nf_conntrack-sysctl.txt was added by commit c9f9e0e1
         ("netfilter: doc: add nf_conntrack sysctl api documentation") lan)
       - networking/team.txt was added by commit 3d249d4c ("net: introduce
         ethernet teaming device")
       - networking/vxlan.txt was added by commit d342894c ("vxlan:
         virtual extensible lan")
       - power/runtime_pm.txt was added by commit 5e928f77 ("PM: Introduce
         core framework for run-time PM of I/O devices (rev.  17)")
       - power/charger-manager.txt was added by commit 3bb3dbbd
         ("power_supply: Add initial Charger-Manager driver")
       - RCU/lockdep-splat.txt was added by commit d7bd2d68 ("rcu:
         Document interpretation of RCU-lockdep splats")
       - s390/kvm.txt was added by 5ecee4ba (KVM: s390: API documentation)
       - s390/qeth.txt was added by commit b4d72c08 ("qeth: bridgeport
         support - basic control")
       - scheduler/sched-bwc.txt was added by commit 88ebc08e ("sched: Add
         documentation for bandwidth control")
       - scsi/advansys.txt was added by commit 4bd6d7f3 ("[SCSI] advansys:
         Move documentation to Documentation/scsi")
       - scsi/bfa.txt was added by commit 1ec90174 ("[SCSI] bfa: add
         readme file")
       - scsi/bnx2fc.txt was added by commit 12b8fc10 ("[SCSI] bnx2fc: Add
         driver documentation")
       - scsi/cxgb3i.txt was added by commit c3673464 ("[SCSI] cxgb3i: Add
         cxgb3i iSCSI driver.")
       - scsi/hpsa.txt was added by commit 992ebcf1 ("[SCSI] hpsa: Add
         hpsa.txt to Documentation/scsi")
       - scsi/link_power_management_policy.txt was added by commit
         ca77329f ("[libata] Link power management infrastructure")
       - scsi/osd.txt was added by commit 78e0c621 ("[SCSI] osd:
         Documentation for OSD library")
       - scsi/scsi-parameter.txt was created/moved by commit 163475fb
         ("Documentation: move SCSI parameters to their own text file")
       - serial/driver was part of the initial repo
       - serial/n_gsm.txt was added by commit 323e8412 ("n_gsm: add a
         documentation")
       - timers/Makefile was added by commit 3794f3e8 ("docsrc: build
         Documentation/ sources")
       - virt/kvm/s390.txt was added by commit d9101fca ("KVM: s390:
         diagnose call documentation")
       - vm/split_page_table_lock was added by commit 49076ec2 ("mm:
         dynamically allocate page->ptl if it cannot be embedded to struct
         page")
       - w1/slaves/w1_ds28e04 was added by commit fbf7f7b4 ("w1: Add
         1-wire slave device driver for DS28E04-100")
       - w1/masters/omap-hdq was added by commit e0a29382 ("hdq:
         documentation for OMAP HDQ")
       - x86/early-microcode.txt was added by commit 0d91ea86 ("x86, doc:
         Documentation for early microcode loading")
       - x86/earlyprintk.txt was added by commit a1aade47 ("x86/doc:
         mini-howto for using earlyprintk=dbgp")
       - x86/entry_64.txt was added by commit 8b4777a4 ("x86-64: Document
         some of entry_64.S")
       - x86/pat.txt was added by commit d27554d8 ("x86: PAT
         documentation")
      
      Moved files
       - arm/kernel_user_helpers.txt was moved out of arch/arm/kernel by
         commit 37b83046 ("ARM: kuser: move interface documentation out of
         the source code")
       - efi-stub.txt was moved out of x86/ and down into Documentation/ in
         commit 4172fe2f ("EFI stub documentation updates")
       - laptops/hpfall.c was moved out of hwmon/ and into laptops/ in commit
         efcfed9b ("Move hp_accel to drivers/platform/x86")
       - commit 5616c23a ("x86: doc: move x86-generic documentation from
         Doc/x86/i386"):
         * x86/usb-legacy-support.txt
         * x86/boot.txt
         * x86/zero_page.txt
       - power/video_extension.txt was moved to acpi in commit 70e66e4d
         ("ACPI / video: move video_extension.txt to Documentation/acpi")
      
      Removed files (left in 00-INDEX)
       - memory.txt was removed by commit 00ea8990 ("memory.txt: remove
         stray information")
       - gpio.txt was moved to gpio/ in commit fd8e198c ("Documentation:
         gpiolib: document new interface")
       - networking/DLINK.txt was removed by commit 168e06ae
         ("drivers/net: delete old parallel port de600/de620 drivers")
       - serial/hayes-esp.txt was removed by commit f53a2ade ("tty: esp:
         remove broken driver")
       - s390/TAPE was removed by commit 9e280f66 ("[S390] remove tape
         block docu")
       - vm/locking was removed by commit 57ea8171 ("mm: documentation:
         remove hopelessly out-of-date locking doc")
       - laptops/acer-wmi.txt was remvoed by commit 02003667 ("acer-wmi:
         Delete out-of-date documentation")
      
      Typos/misc issues
       - rpc-server-gss.txt was added as knfsd-rpcgss.txt in commit
         030d794b ("SUNRPC: Use gssproxy upcall for server RPCGSS
         authentication.")
       - commit b88cf73d ("net: add missing entries to
         Documentation/networking/00-INDEX")
         * generic-hdlc.txt was added as generic_hdlc.txt
         * spider_net.txt was added as spider-net.txt
       - w1/master/mxc-w1 was added as mxc_w1 by commit a5fd9139 ("w1: add
         1-wire master driver for i.MX27 / i.MX31")
       - s390/zfcpdump.txt was added as zfcpdump by commit 6920c12a
         ("[S390] Add Documentation/s390/00-INDEX.")
      Signed-off-by: NHenrik Austad <henrik@austad.us>
      Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>	[rcu bits]
      Acked-by: NRob Landley <rob@landley.net>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Gleb Natapov <gleb@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Len Brown <len.brown@intel.com>
      Cc: James Bottomley <JBottomley@parallels.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3cf8ca1c
  11. 31 1月, 2014 2 次提交
    • R
      Documentation/filesystems/vfs.txt: update file_operations documentation · 46bf16c4
      Richard Yao 提交于
      ->readv, ->writev and ->sendfile have been removed while ->show_fdinfo
      has been added. The documentation should reflect this.
      Signed-off-by: NRichard Yao <ryao@gentoo.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      46bf16c4
    • D
      mm, oom: base root bonus on current usage · 778c14af
      David Rientjes 提交于
      A 3% of system memory bonus is sometimes too excessive in comparison to
      other processes.
      
      With commit a63d83f4 ("oom: badness heuristic rewrite"), the OOM
      killer tries to avoid killing privileged tasks by subtracting 3% of
      overall memory (system or cgroup) from their per-task consumption.  But
      as a result, all root tasks that consume less than 3% of overall memory
      are considered equal, and so it only takes 33+ privileged tasks pushing
      the system out of memory for the OOM killer to do something stupid and
      kill dhclient or other root-owned processes.  For example, on a 32G
      machine it can't tell the difference between the 1M agetty and the 10G
      fork bomb member.
      
      The changelog describes this 3% boost as the equivalent to the global
      overcommit limit being 3% higher for privileged tasks, but this is not
      the same as discounting 3% of overall memory from _every privileged task
      individually_ during OOM selection.
      
      Replace the 3% of system memory bonus with a 3% of current memory usage
      bonus.
      
      By giving root tasks a bonus that is proportional to their actual size,
      they remain comparable even when relatively small.  In the example
      above, the OOM killer will discount the 1M agetty's 256 badness points
      down to 179, and the 10G fork bomb's 262144 points down to 183500 points
      and make the right choice, instead of discounting both to 0 and killing
      agetty because it's first in the task list.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Reported-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      778c14af
  12. 29 1月, 2014 9 次提交
  13. 25 1月, 2014 1 次提交
  14. 24 1月, 2014 3 次提交
  15. 22 1月, 2014 1 次提交
    • R
      /proc/meminfo: provide estimated available memory · 34e431b0
      Rik van Riel 提交于
      Many load balancing and workload placing programs check /proc/meminfo to
      estimate how much free memory is available.  They generally do this by
      adding up "free" and "cached", which was fine ten years ago, but is
      pretty much guaranteed to be wrong today.
      
      It is wrong because Cached includes memory that is not freeable as page
      cache, for example shared memory segments, tmpfs, and ramfs, and it does
      not include reclaimable slab memory, which can take up a large fraction
      of system memory on mostly idle systems with lots of files.
      
      Currently, the amount of memory that is available for a new workload,
      without pushing the system into swap, can be estimated from MemFree,
      Active(file), Inactive(file), and SReclaimable, as well as the "low"
      watermarks from /proc/zoneinfo.
      
      However, this may change in the future, and user space really should not
      be expected to know kernel internals to come up with an estimate for the
      amount of free memory.
      
      It is more convenient to provide such an estimate in /proc/meminfo.  If
      things change in the future, we only have to change it in one place.
      Signed-off-by: NRik van Riel <riel@redhat.com>
      Reported-by: NErik Mouw <erik.mouw_2@nxp.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      34e431b0
  16. 09 1月, 2014 1 次提交
  17. 02 1月, 2014 1 次提交
  18. 26 12月, 2013 1 次提交
  19. 23 12月, 2013 2 次提交
    • J
      f2fs: add description about small_discards in document · ba0697ec
      Jaegeuk Kim 提交于
      This patch adds a description about small_disacrds in the f2fs document.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      ba0697ec
    • J
      f2fs: introduce sysfs entry to control in-place-update policy · 216fbd64
      Jaegeuk Kim 提交于
      This patch introduces new sysfs entries for users to control the policy of
      in-place-updates, namely IPU, in f2fs.
      
      Sometimes f2fs suffers from performance degradation due to its out-of-place
      update policy that produces many additional node block writes.
      If the storage performance is very dependant on the amount of data writes
      instead of IO patterns, we'd better drop this out-of-place update policy.
      
      This patch suggests 5 polcies and their triggering conditions as follows.
      
      [sysfs entry name = ipu_policy]
      
      0: F2FS_IPU_FORCE       all the time,
      1: F2FS_IPU_SSR         if SSR mode is activated,
      2: F2FS_IPU_UTIL        if FS utilization is over threashold,
      3: F2FS_IPU_SSR_UTIL    if SSR mode is activated and FS utilization is over
                              threashold,
      4: F2FS_IPU_DISABLE    disable IPU. (=default option)
      
      [sysfs entry name = min_ipu_util]
      
      This parameter controls the threshold to trigger in-place-updates.
      The number indicates percentage of the filesystem utilization, and used by
      F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.
      
      For more details, see need_inplace_update() in segment.h.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      216fbd64
  20. 19 12月, 2013 1 次提交
  21. 11 12月, 2013 1 次提交