twx-linux/include/linux
Clement Courbet 0ade34c370 lib: optimize cpumask_next_and()
We've measured that we spend ~0.6% of sys cpu time in cpumask_next_and().
It's essentially a joined iteration in search for a non-zero bit, which is
currently implemented as a lookup join (find a nonzero bit on the lhs,
lookup the rhs to see if it's set there).

Implement a direct join (find a nonzero bit on the incrementally built
join).  Also add generic bitmap benchmarks in the new `test_find_bit`
module for new function (see `find_next_and_bit` in [2] and [3] below).

For cpumask_next_and, direct benchmarking shows that it's 1.17x to 14x
faster with a geometric mean of 2.1 on 32 CPUs [1].  No impact on memory
usage.  Note that on Arm, the new pure-C implementation still outperforms
the old one that uses a mix of C and asm (`find_next_bit`) [3].

[1] Approximate benchmark code:

```
  unsigned long src1p[nr_cpumask_longs] = {pattern1};
  unsigned long src2p[nr_cpumask_longs] = {pattern2};
  for (/*a bunch of repetitions*/) {
    for (int n = -1; n <= nr_cpu_ids; ++n) {
      asm volatile("" : "+rm"(src1p)); // prevent any optimization
      asm volatile("" : "+rm"(src2p));
      unsigned long result = cpumask_next_and(n, src1p, src2p);
      asm volatile("" : "+rm"(result));
    }
  }
```

Results:
pattern1    pattern2     time_before/time_after
0x0000ffff  0x0000ffff   1.65
0x0000ffff  0x00005555   2.24
0x0000ffff  0x00001111   2.94
0x0000ffff  0x00000000   14.0
0x00005555  0x0000ffff   1.67
0x00005555  0x00005555   1.71
0x00005555  0x00001111   1.90
0x00005555  0x00000000   6.58
0x00001111  0x0000ffff   1.46
0x00001111  0x00005555   1.49
0x00001111  0x00001111   1.45
0x00001111  0x00000000   3.10
0x00000000  0x0000ffff   1.18
0x00000000  0x00005555   1.18
0x00000000  0x00001111   1.17
0x00000000  0x00000000   1.25
-----------------------------
               geo.mean  2.06

[2] test_find_next_bit, X86 (skylake)

 [ 3913.477422] Start testing find_bit() with random-filled bitmap
 [ 3913.477847] find_next_bit: 160868 cycles, 16484 iterations
 [ 3913.477933] find_next_zero_bit: 169542 cycles, 16285 iterations
 [ 3913.478036] find_last_bit: 201638 cycles, 16483 iterations
 [ 3913.480214] find_first_bit: 4353244 cycles, 16484 iterations
 [ 3913.480216] Start testing find_next_and_bit() with random-filled
 bitmap
 [ 3913.481074] find_next_and_bit: 89604 cycles, 8216 iterations
 [ 3913.481075] Start testing find_bit() with sparse bitmap
 [ 3913.481078] find_next_bit: 2536 cycles, 66 iterations
 [ 3913.481252] find_next_zero_bit: 344404 cycles, 32703 iterations
 [ 3913.481255] find_last_bit: 2006 cycles, 66 iterations
 [ 3913.481265] find_first_bit: 17488 cycles, 66 iterations
 [ 3913.481266] Start testing find_next_and_bit() with sparse bitmap
 [ 3913.481272] find_next_and_bit: 764 cycles, 1 iterations

[3] test_find_next_bit, arm (v7 odroid XU3).

[  267.206928] Start testing find_bit() with random-filled bitmap
[  267.214752] find_next_bit: 4474 cycles, 16419 iterations
[  267.221850] find_next_zero_bit: 5976 cycles, 16350 iterations
[  267.229294] find_last_bit: 4209 cycles, 16419 iterations
[  267.279131] find_first_bit: 1032991 cycles, 16420 iterations
[  267.286265] Start testing find_next_and_bit() with random-filled
bitmap
[  267.302386] find_next_and_bit: 2290 cycles, 8140 iterations
[  267.309422] Start testing find_bit() with sparse bitmap
[  267.316054] find_next_bit: 191 cycles, 66 iterations
[  267.322726] find_next_zero_bit: 8758 cycles, 32703 iterations
[  267.329803] find_last_bit: 84 cycles, 66 iterations
[  267.336169] find_first_bit: 4118 cycles, 66 iterations
[  267.342627] Start testing find_next_and_bit() with sparse bitmap
[  267.356919] find_next_and_bit: 91 cycles, 1 iterations

[courbet@google.com: v6]
  Link: http://lkml.kernel.org/r/20171129095715.23430-1-courbet@google.com
[geert@linux-m68k.org: m68k/bitops: always include <asm-generic/bitops/find.h>]
  Link: http://lkml.kernel.org/r/1512556816-28627-1-git-send-email-geert@linux-m68k.org
Link: http://lkml.kernel.org/r/20171128131334.23491-1-courbet@google.com
Signed-off-by: Clement Courbet <courbet@google.com>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Yury Norov <ynorov@caviumnetworks.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-02-06 18:32:44 -08:00
..
amba
avf
bcma
byteorder
can can: dev: Add support for limiting configured bitrate 2018-01-16 15:11:32 +01:00
ceph
clk
crush
decompress
dma
dsa net: dsa: lan9303: phy_addr_sel_strap rename and retype 2018-01-04 13:35:07 -05:00
extcon
firmware/meson
fpga
fsl
gpio The is the bulk of GPIO changes for the v4.16 kernel cycle. 2018-01-31 12:25:27 -08:00
hsi
iio Staging/IIO patches for 4.16-rc1 2018-02-01 09:51:57 -08:00
input
irqchip
isdn
lockd lockd: convert nlm_rqst.a_count from atomic_t to refcount_t 2018-01-14 23:06:30 -05:00
mailbox
mfd RTC for 4.16 2018-02-02 14:19:19 -08:00
mlx4
mlx5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
mmc mmc: slot-gpio: add a helper to check capability of GPIO WP detection 2018-01-18 09:08:56 +01:00
mtd Core changes: 2018-01-29 09:58:36 +01:00
mux mux: add SPDX identifiers to all mux source files 2018-01-09 16:51:44 +01:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl pinctrl: remove include file from <linux/device.h> 2018-02-03 12:10:09 -08:00
platform_data Merge branch 'i2c/for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-02-04 10:57:43 -08:00
power
qed
raid
regulator regulator: add PM suspend and resume hooks 2018-01-26 14:43:55 +00:00
remoteproc
reset
rpmsg
rtc
sched Currently, hardened usercopy performs dynamic bounds checking on slab 2018-02-03 16:25:42 -08:00
soc ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
soundwire
spi
ssb
sunrpc NFS-over-RDMA client updates for Linux 4.16 2018-01-23 14:55:50 -05:00
ulpi
unaligned
usb usb: renesas_usbhs: Add support for RZ/A1 2018-01-09 16:18:50 +01:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
acpi.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
arch_topology.h sched/cpufreq: Remove arch_scale_freq_capacity()'s 'sd' parameter 2018-01-10 12:53:34 +01:00
arm_sdei.h firmware: arm_sdei: Add driver for Software Delegated Exceptions 2018-01-13 10:44:56 +00:00
arm-cci.h
arm-smccc.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h scsi: ata: enhance the definition of SET MAX feature field value 2018-01-10 23:25:08 -05:00
atalk.h
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel_tc.h
atmel-mci.h
atmel-ssc.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h lockdep: Convert some users to const 2018-01-18 11:56:49 +01:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
bfin_mac.h
binfmts.h
bio.h Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block 2018-01-29 11:51:49 -08:00
bit_spinlock.h
bitfield.h
bitmap.h lib: optimize cpumask_next_and() 2018-02-06 18:32:44 -08:00
bitops.h
bitrev.h
blk_types.h blk-mq: introduce BLK_STS_DEV_RESOURCE 2018-01-30 20:18:28 -07:00
blk-cgroup.h blkcg: simplify statistic accumulation code 2018-01-16 08:56:36 -07:00
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h blk-mq: rename blk_mq_hw_ctx->queue_rq_srcu to ->srcu 2018-01-09 09:31:15 -07:00
blkdev.h Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block 2018-01-29 11:51:49 -08:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf_trace.h
bpf_types.h bpf: only build sockmap with CONFIG_INET 2018-01-04 19:01:14 +01:00
bpf_verifier.h bpf: export function to write into verifier log buffer 2018-01-10 13:49:36 +01:00
bpf-cgroup.h
bpf.h bpf: offload: report device information about offloaded maps 2018-01-18 22:54:25 +01:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h for-linus-20180204 2018-02-04 11:16:35 -08:00
bug.h
build_bug.h
bvec.h block: bounce: don't access bio->bi_io_vec in copy_to_high_bio_irq 2018-01-06 09:18:00 -07:00
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h
cgroup.h
circ_buf.h
cleancache.h
clk-provider.h Merge branches 'clk-remove-asm-clkdev', 'clk-debugfs-fixes', 'clk-renesas' and 'clk-meson' into clk-next 2018-01-26 16:43:32 -08:00
clk.h
clkdev.h clk: Move __clk_{get,put}() into private clk.h API 2018-01-04 15:13:29 -08:00
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
compaction.h
compat.h signal: Unify and correct copy_siginfo_from_user32 2018-01-15 17:55:59 -06:00
compiler_types.h
compiler-clang.h kasan: add compiler support for clang 2018-02-06 18:32:42 -08:00
compiler-gcc.h sparse doesn't support struct randomization 2018-01-19 10:09:41 -08:00
compiler-intel.h
compiler.h compiler.h: Add read_word_at_a_time() function. 2018-02-01 12:20:21 -08:00
completion.h locking/lockdep: Remove cross-release leftovers 2018-01-08 17:30:45 +01:00
component.h
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-14 09:51:25 -08:00
cpufeature.h
cpufreq.h
cpuhotplug.h Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-02-02 09:50:51 -08:00
cpuidle.h
cpumask.h
cpuset.h
crash_core.h kdump: write correct address of mem_section into vmcoreinfo 2018-01-13 10:42:48 -08:00
crash_dump.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h lib/crc-ccitt: Add CCITT-FALSE CRC16 variant 2018-01-08 10:08:33 +00:00
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h crypto: hash - prevent using keyed hashes without setting key 2018-01-12 23:03:37 +11:00
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h dax: pass detailed error code from dax_iomap_fault() 2018-01-07 16:38:43 -05:00
dca.h
dcache.h vfs: factor out helpers d_instantiate_anon() and d_alloc_anon() 2018-01-24 11:25:59 +01:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h delayacct: Account blkio completion on the correct task 2018-01-16 03:29:36 +01:00
delayed_call.h
dell-led.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h dm mpath: delay the retry of a request if the target responded as busy 2018-01-29 13:44:54 -05:00
device.h pinctrl: remove include file from <linux/device.h> 2018-02-03 12:10:09 -08:00
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dma_remapping.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direct.h dma-direct: reject too small dma masks 2018-01-15 09:35:15 +01:00
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h
dma-mapping.h dma-direct: rename dma_noop to dma_direct 2018-01-15 09:35:06 +01:00
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds2782_battery.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2018-01-31 13:12:31 -08:00
efs_vh.h
eisa.h
elevator.h block: Unexport elv_register_queue() and elv_unregister_queue() 2018-01-18 12:54:41 -07:00
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
error-injection.h error-injection: Add injectable error types 2018-01-12 17:33:38 -08:00
errqueue.h
errseq.h
etherdevice.h
ethtool.h
eventfd.h eventfd: fold eventfd_ctx_get() into eventfd_ctx_fileget() 2018-01-06 13:47:20 -05:00
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h f2fs: support inode creation time 2018-01-25 14:10:39 -08:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h vfs, fdtable: Prevent bounds-check bypass via speculative execution 2018-01-30 21:54:32 +01:00
fec.h
file.h
filter.h bpf: make unknown opcode handling more robust 2018-01-26 16:42:05 -08:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
frame.h
freezer.h
frontswap.h
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h New in this version: 2018-01-31 10:18:00 -08:00
fscache-cache.h
fscache.h
fscrypt_notsupp.h fscrypt: remove 'ci' parameter from fscrypt_put_encryption_info() 2018-01-11 23:30:13 -05:00
fscrypt_supp.h fscrypt: remove 'ci' parameter from fscrypt_put_encryption_info() 2018-01-11 23:30:13 -05:00
fscrypt.h fscrypt: move fscrypt_symlink_data to fscrypt_private.h 2018-01-11 23:30:08 -05:00
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h
fsnotify.h
ftrace_irq.h
ftrace.h init_task out-of-lining 2018-01-29 09:08:34 -08:00
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h block: allow gendisk's request_queue registration to be deferred 2018-01-15 08:41:38 -07:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h hrtimer: Implement support for softirq based hrtimers 2018-01-16 09:51:22 +01:00
htcpld.h
huge_mm.h
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h hugetlb, mbind: fall back to default policy if vma is NULL 2018-01-31 17:18:40 -08:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h i2c: add 'set_sda' to bus_recovery_info 2018-01-16 00:04:19 +01:00
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h net/core: Add drop counters to VF statistics 2018-01-09 07:40:48 +02:00
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_tap.h tun/tap: use ptr_ring instead of skb_array 2018-01-09 10:56:10 -05:00
if_team.h
if_tun.h tuntap: fix for "tuntap: XDP transmission" 2018-01-10 15:52:49 -05:00
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
imx-media.h
in6.h
in.h
inet_diag.h
inet.h
inetdevice.h devinet_ioctl(): take copyin/copyout to caller 2018-01-24 19:13:45 -05:00
init_ohci1394_dma.h
init_task.h Expand INIT_STRUCT_PID and remove 2018-01-17 11:30:16 +00:00
init.h x86/retpoline: Avoid retpolines for built-in __init functions 2018-02-02 12:28:27 +01:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-pti.h
intel-svm.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iomap.h
iommu-common.h
iommu-helper.h
iommu.h
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h irq/work: Improve the flag definitions 2018-01-08 19:43:15 +01:00
irq.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h init_task out-of-lining 2018-01-29 09:08:34 -08:00
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iversion.h iversion: make inode_cmp_iversion{+raw} return bool instead of s64 2018-01-31 08:43:35 -08:00
jbd2.h jbd2: fix sphinx kernel-doc build warnings 2018-01-10 00:27:29 -05:00
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h sched/core: Fix cpu.max vs. cpuhotplug deadlock 2018-01-24 10:03:44 +01:00
jz4740-adc.h
jz4780-nemc.h
kallsyms.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk 2018-02-01 13:36:15 -08:00
kasan-checks.h
kasan.h kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage 2018-02-06 18:32:43 -08:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h error-injection: Separate error-injection from kprobe 2018-01-12 17:33:38 -08:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
libata.h
libfdt_env.h
libfdt.h libfdt: remove unnecessary include directive from <linux/libfdt.h> 2018-01-11 14:39:07 -06:00
libgcc.h
libnvdimm.h
libps2.h
license.h
lightnvm.h lightnvm: set target over-provision on create ioctl 2018-01-05 08:50:12 -07:00
linkage.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h
livepatch.h livepatch: Remove immediate feature 2018-01-11 10:58:03 +01:00
llc.h
llist.h
lockdep.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-30 10:44:56 -08:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-mux.h
mdio.h net: mdiobus: add unlocked accessors 2018-01-03 11:00:22 -05:00
mei_cl_bus.h
mem_encrypt.h
memblock.h
memcontrol.h mm: memcontrol: fix excessive complexity in memory.stat reporting 2018-01-31 17:18:36 -08:00
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types_task.h
mm_types.h mm: remove reference to PG_buddy 2018-01-31 17:18:38 -08:00
mm-arch-hooks.h
mm.h mm: add unmap_mapping_pages() 2018-01-31 17:18:37 -08:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h mm, mmu_notifier: annotate mmu notifiers with blockable invalidate callbacks 2018-01-31 17:18:38 -08:00
mmzone.h include/linux/mmzone.h: fix explanation of lower bits in the SPARSEMEM mem_map pointer 2018-01-31 17:18:39 -08:00
mnt_namespace.h
mod_devicetable.h
module.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk 2018-02-01 13:36:15 -08:00
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
net_dim.h net/dim: Fix fixpoint divide exception in net_dim_stats_compare 2018-01-19 14:53:32 -05:00
net.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
netdev_features.h
netdevice.h net: introduce helper dev_change_tx_queue_len() 2018-01-29 12:42:15 -05:00
netfilter_bridge.h
netfilter_defs.h netfilter: reduce NF_MAX_HOOKS define 2018-01-08 18:01:12 +01:00
netfilter_ingress.h
netfilter_ipv4.h netfilter: move reroute indirection to struct nf_ipv6_ops 2018-01-08 18:10:53 +01:00
netfilter_ipv6.h netfilter: move reroute indirection to struct nf_ipv6_ops 2018-01-08 18:10:53 +01:00
netfilter.h netfilter: remove struct nf_afinfo and its helper functions 2018-01-08 18:11:02 +01:00
netlink.h netlink: extack: avoid parenthesized string constant warning 2018-01-15 15:15:23 -05:00
netpoll.h
nfs3.h
nfs4.h NFS: Fix nfsstat breakage due to LOOKUPP 2018-01-14 23:06:29 -05:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nospec.h array_index_nospec: Sanitize speculative array de-references 2018-01-30 21:54:29 +01:00
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h NTB: Fix UB/bug in ntb_mw_get_align() 2018-01-28 22:17:24 -05:00
nubus.h nubus: Add support for the driver model 2018-01-16 16:47:29 +01:00
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme.h nvme-pci: clean up SMBSZ bit definitions 2018-01-17 17:55:14 +01:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
of_address.h
of_device.h
of_dma.h of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
of_fdt.h of/fdt: use memblock_virt_alloc for early alloc 2018-01-08 08:24:34 -06:00
of_gpio.h DeviceTree updates for 4.16: 2018-02-01 10:57:45 -08:00
of_graph.h of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
of_platform.h of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
of_reserved_mem.h
of.h DeviceTree updates for 4.16: 2018-02-01 10:57:45 -08:00
oid_registry.h
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-gpmc.h mtd: onenand: omap2: Configure driver from DT 2018-01-12 16:41:15 +01:00
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page-flags-layout.h
page-flags.h mm: remove PG_highmem description 2018-01-31 17:18:40 -08:00
page-isolation.h
pageblock-flags.h
pagemap.h
pagevec.h mm: get 7% more pages in a pagevec 2018-01-31 17:18:37 -08:00
parman.h
parport_pc.h
parport.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma-compat.h
pci-dma.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci.h powerpc updates for 4.16 2018-02-02 10:01:04 -08:00
pcieport_if.h
pda_power.h
pe.h
percpu_counter.h
percpu_ida.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h
perf_regs.h
personality.h
pfn_t.h
pfn.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h phy: add helpers for setting/clearing bits in PHY registers 2018-01-16 12:25:10 -05:00
phylink.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h PM / wakeup: Add device_set_wakeup_path() helper to control wakeup path 2018-01-09 13:09:17 +01:00
pm-trace.h
pm.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h posix-timers: Prevent UB from shifting negative signed value 2018-01-04 14:57:10 +01:00
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
pr.h
preempt.h
prefetch.h
prime_numbers.h
printk.h
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
psci.h arm64: acpi: Remove __init from acpi_psci_use_hvc() for use by SDEI 2018-01-14 18:49:49 +00:00
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h ptr_ring: prevent queue load/store tearing 2018-01-29 12:02:54 -05:00
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_wait.h
rcupdate.h
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
regset.h
relay.h
remoteproc.h remoteproc: Drop dangling find_rsc_table dummies 2018-01-15 09:30:00 -08:00
reservation.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable.h
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
rtsx_common.h
rtsx_pci.h - New Drivers 2018-01-29 10:59:24 -08:00
rtsx_usb.h
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h
scatterlist.h lib/scatterlist: Fix chaining support in sgl_alloc_order() 2018-01-19 12:31:03 -07:00
scc.h
sched_clock.h
sched.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-30 11:55:56 -08:00
scif.h
scpi_protocol.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h
seqlock.h
seqno-fence.h
serdev.h TTY/Staging driver updates for 4.16-rc1 2018-02-01 09:46:00 -08:00
serial_8250.h
serial_bcm63xx.h
serial_core.h serial: core: Make uart_parse_options take const char* argument 2018-01-09 16:46:26 +01:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h
sfi_acpi.h
sfi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h shmem: rename functions that are memfd-related 2018-01-31 17:18:39 -08:00
shrinker.h
signal_types.h
signal.h signal: Remove unnecessary ifdefs now that there is only one struct siginfo 2018-01-12 14:34:49 -06:00
signalfd.h
siox.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h skb_array: use __ptr_ring_empty 2018-01-29 12:02:54 -05:00
skbuff.h net: create skb_gso_validate_mac_len() 2018-02-01 09:36:03 -05:00
slab_def.h usercopy: Prepare for usercopy whitelisting 2018-01-15 12:07:47 -08:00
slab.h usercopy: Allow strict enforcement of whitelists 2018-01-15 12:07:48 -08:00
slimbus.h
slub_def.h usercopy: Prepare for usercopy whitelisting 2018-01-15 12:07:47 -08:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h sound: Remove unused register_sound_midi() and co 2018-01-11 17:05:23 +01:00
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
spmi.h
sram.h
srcu.h lockdep: Convert some users to const 2018-01-18 11:56:49 +01:00
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h stddef.h: Introduce sizeof_field() 2018-01-15 12:07:46 -08:00
ste_modem_shm.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-31 09:25:20 -08:00
stringhash.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h x86/power: Fix swsusp_arch_resume prototype 2018-02-02 23:33:50 +01:00
svga.h
sw842.h
swab.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h mm: remove unused pgdat_reclaimable_pages() 2018-01-31 17:18:37 -08:00
swapfile.h
swapops.h mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte() 2018-01-21 17:44:47 -08:00
swiotlb.h swiotlb: add common swiotlb_map_ops 2018-01-15 09:35:45 +01:00
switchtec.h ntb_hw_switchtec: Expand PFF CSR registers 2018-01-28 22:17:23 -05:00
sxgbe_platform.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h sysfs.h: Use octal permissions 2018-01-09 16:27:43 +01:00
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h bpf: Adds field bpf_sock_ops_cb_flags to tcp_sock 2018-01-25 16:41:14 -08:00
tee_drv.h This pull request updates the previous tee-drv-dynamic-shm-for-v4.16 pull 2018-01-11 18:05:06 -08:00
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h
threads.h
thunderbolt.h
ti_wilink_st.h
ti-emif-sram.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h
time.h
timecounter.h
timekeeper_internal.h
timekeeping32.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h tpm: add event log format version 2018-01-08 12:58:34 +02:00
tpm.h tpm: Keep CLKRUN enabled throughout the duration of transmit_cmd() 2018-01-08 12:58:38 +02:00
trace_clock.h
trace_events.h
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h tty: fix data race between tty_init_dev and flush of buf 2018-01-23 08:57:37 +01:00
typecheck.h
types.h
u64_stats_sync.h
uaccess.h usercopy: WARN() on slab cache usercopy region violations 2018-01-15 12:07:48 -08:00
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h
umh.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uuid.h uuid: cleanup <uapi/linux/uuid.h> 2018-02-06 18:32:44 -08:00
uwb.h
vbox_utils.h
verification.h
vermagic.h Revert "module: Add retpoline tag to VERMAGIC" 2018-01-24 09:00:05 -08:00
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_net.h
virtio_ring.h
virtio_vsock.h
virtio.h
visorbus.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h mm: remove unused pgdat_reclaimable_pages() 2018-01-31 17:18:37 -08:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_bit.h
wait.h
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
writeback.h
ww_mutex.h
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h zswap: only save zswap header when necessary 2018-01-31 17:18:39 -08:00
zsmalloc.h
zstd.h
zutil.h