lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 04 Jan 2009 05:17:59 -0800
From:	Mike Travis <travis@....com>
To:	Ingo Molnar <mingo@...hat.com>
Cc:	Rusty Russell <rusty@...tcorp.com.au>,
	"H. Peter Anvin" <hpa@...or.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Jack Steiner <steiner@....com>, linux-kernel@...r.kernel.org
Subject: [PATCH 00/11] x86: cpumask: some more cpumask cleanups


Here's some more cpumask cleanups.

    ia64: cpumask fix for is_affinity_mask_valid()
    cpumask: update local_cpus_show to use new cpumask API
    cpumask: update pci_bus_show_cpuaffinity to use new cpumask API
    x86: cleanup remaining cpumask_t ops in smpboot code
    x86: clean up speedstep-centrino and reduce cpumask_t usage
    cpumask: Replace CPUMASK_ALLOC etc with cpumask_var_t.
    cpumask: convert struct cpufreq_policy to cpumask_var_t.
    cpumask: use work_on_cpu in acpi/cstate.c
    cpumask: use cpumask_var_t in acpi-cpufreq.c
    cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write
    cpumask: use work_on_cpu in acpi-cpufreq.c for read_measured_perf_ctrs

This version basically splits out the changes to make it more
bisectable, and has been patch-wise compile/boot tested.  Updated
stats are below.

Signed-off-by: Mike Travis <travis@....com>
Cc: Andreas Herrmann <andreas.herrmann3@....com>
Cc: Dave Jones <davej@...hat.com>
Cc: Jesse Barnes <jbarnes@...tuousgeek.org>
Cc: Len Brown <len.brown@...el.com>

---

The number of stack hogs have been significantly reduced:

====== Stack (-l 500)
    1 - allyesconfig-128
    2 - allyesconfig-4k

  .1.    .2.    ..final..
    0  +1032   1032      .  flush_tlb_page
    0  +1024   1024      .  kvm_reload_remote_mmus
    0  +1024   1024      .  kvm_flush_remote_tlbs
    0  +1024   1024      .  flush_tlb_mm
    0  +1024   1024      .  flush_tlb_current_task
    0   +824    824      .  efx_pci_probe_main
    0   +800    800      .  cpuset_write_resmask
    0   +736    736      .  update_flag
    0   +696    696      .  init_intel_cacheinfo
    0   +640    640      .  cpuset_attach
    0   +600    600      .  shmem_getpage
    0   +600    600      .  powernowk8_target
    0   +584    584      .  powernowk8_cpu_init
    0   +584    584      .  __percpu_alloc_mask
    0   +552    552      .  xen_flush_tlb_others
    0   +552    552      .  smp_call_function_many
    0   +536    536      .  reload_store
    0   +536    536      .  native_flush_tlb_others
    0   +536    536      .  cpuset_common_file_read
    0   +528    528      .  get_cur_freq
    0   +528    528      .  check_supported_cpu
    0   +520    520      .  powernowk8_get
    0   +520    520      .  microcode_write
    0   +520    520      .  microcode_init_cpu
    0   +520    520      .  cpuset_can_attach
    0   +512    512      .  smi_request
    0   +512    512      .  pci_device_probe
    0   +512    512      .  find_lowest_rq


And the overall memory usage is becoming quite less affected by changing
NR_CPUS from 128 to 4096:

====== Text/Data ()
    1 - allyesconfig-128
    2 - allyesconfig-4k

       .1.       .2.    ..final..
  32950272    +10240   32960512 +0.03%  TextSize
  45082624    +77824   45160448 +0.17%  DataSize
  11436032  +4167680   15603712   +36%  BssSize
   3514368   +794624    4308992   +22%  InitSize
   1904640     +4096    1908736 +0.22%  PerCPU
    360448   +722944    1083392  +200%  OtherSize
  95248384  +5777408  101025792  +106%  Totals


Detailing it by section shows there still are a few areas to examine more
closely.  Note init.data is "give back" memory, but data.cacheline_aligned
indicates there are still many lists sized by NR_CPUS.


====== Sections (-l 500)
    1 - allyesconfig-128
    2 - allyesconfig-4k

        .1.       .2.    ..final..
  563607471  +6217546   569825017 +1.10%  Total
  362852723   +357693   363210416 +0.10%  .debug_info
   43002053    +10004    43012057 +0.02%  .debug_loc
   32949913    +10464    32960377 +0.03%  .text
   25793792     +4848    25798640 +0.02%  .debug_ranges
   22693731    +39360    22733091 +0.17%  .rodata
   21157048    +33968    21191016 +0.16%  .data
   19190023      +983    19191006 +0.01%  .debug_line
   11436936  +4167424    15604360   +36%  .bss
    7205306    +85021     7290327 +1.18%  .debug_abbrev
    1904160     +5504     1909664 +0.29%  .data.percpu
     829999      +709      830708 +0.09%  .init.text
     595328   +783920     1379248  +131%  .init.data
     150400     +1456      151856 +0.97%  __param
     101464   +239632      341096  +236%  .data.read_mostly
      32384   +475648      508032 +1468%  .data.cacheline_aligned

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ