Fwd: [PATCH v3 0/5] block: loop: convert to blk-mq

From: Sedat Dilek
Date: Wed Dec 31 2014 - 17:32:35 EST


Forgot to CC LKML and linux-fsdevel.

- Sedat -


---------- Forwarded message ----------
From: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Date: Wed, Dec 31, 2014 at 11:17 PM
Subject: Re: [PATCH v3 0/5] block: loop: convert to blk-mq
To: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Cc: Jens Axboe <axboe@xxxxxx>, Keith Busch <keith.busch@xxxxxxxxx>


On Wed, Dec 31, 2014 at 9:54 PM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
[...]
> Now, I wanted to do some benchmarking.
>
> In 2/5 "block: loop: improve performance via blk-mq" [1] you gave some numbers.
> Can you please tell me how you got that numbers - userspace setup etc.?
>

OK, I have installed fio (1.59-1) and libaio1 (0.3.109-2ubuntu1) here.

You say in [1]:

"In the following test:
- base: v3.19-rc2-2041231
- loop over file in ext4 file system on SSD disk
- bs: 4k, libaio, io depth: 64, O_DIRECT, num of jobs: 1
- throughput: IOPS"

I tried to reproduce that inspired by [2]...

root# fio --name=randread --rw=randread --bs=4k --ioengine=libaio
--iodepth=64 --direct=1 --numjobs=1 --size=1G

...you had no size given (here: 1GiB) - fio requires that parameter to run.

This results in 165 VS. 515 IOPS here.

# grep "iops=" test-*
test-1-next20141231.txt: read : io=1024.0MB, bw=678578 B/s, iops=165
, runt=1582340msec
test-2-next20141231-block-mq-v3.txt: read : io=1024.0MB,
bw=2063.4KB/s, iops=515 , runt=508182msec

Full fio-logs and some other useful configs/logs/patches attached.

- Sedat -

[1] http://marc.info/?l=linux-kernel&m=142003220301459&w=2
[2] http://wiki.mikejung.biz/Benchmarking#Fio_Random_Write_Test_using_libaio_and_direct_flags
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.19.0-rc2-next20141231-2-iniza-small (sedat.dilek@xxxxxxxxx@fambox) (gcc version 4.9.2 (Ubuntu 4.9.2-0ubuntu1~12.04) ) #1 SMP Wed Dec 31 21:02:21 CET 2014
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.19.0-rc2-next20141231-2-iniza-small root=UUID=001AADA61AAD9964 loop=/ubuntu/disks/root.disk ro
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] Centaur CentaurHauls
[ 0.000000] Disabled fast string operations
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000020200000-0x000000003fffffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000040000000-0x00000000401fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000040200000-0x00000000d9c9efff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000d9c9f000-0x00000000dae7efff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000dae7f000-0x00000000daf9efff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000daf9f000-0x00000000daffefff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000dafff000-0x00000000daffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000db000000-0x00000000df9fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed08000-0x00000000fed08fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed19fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ffd80000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000011fdfffff] usable
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.6 present.
[ 0.000000] DMI: SAMSUNG ELECTRONICS CO., LTD. 530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] AGP: No AGP bridge found
[ 0.000000] e820: last_pfn = 0x11fe00 max_arch_pfn = 0x400000000
[ 0.000000] MTRR default type: uncachable
[ 0.000000] MTRR fixed ranges enabled:
[ 0.000000] 00000-9FFFF write-back
[ 0.000000] A0000-BFFFF uncachable
[ 0.000000] C0000-FFFFF write-protect
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] 0 base 000000000 mask F80000000 write-back
[ 0.000000] 1 base 080000000 mask FC0000000 write-back
[ 0.000000] 2 base 0C0000000 mask FE0000000 write-back
[ 0.000000] 3 base 0DC000000 mask FFC000000 uncachable
[ 0.000000] 4 base 0DB000000 mask FFF000000 uncachable
[ 0.000000] 5 base 100000000 mask FE0000000 write-back
[ 0.000000] 6 base 11FE00000 mask FFFE00000 uncachable
[ 0.000000] 7 base 0FFC00000 mask FFFC00000 write-protect
[ 0.000000] 8 disabled
[ 0.000000] 9 disabled
[ 0.000000] PAT configuration [0-7]: WB WC UC- UC WB WC UC- UC
[ 0.000000] e820: last_pfn = 0xdb000 max_arch_pfn = 0x400000000
[ 0.000000] found SMP MP-table at [mem 0x000f00e0-0x000f00ef] mapped at [ffff8800000f00e0]
[ 0.000000] Scanning 1 areas for low memory corruption
[ 0.000000] Base memory trampoline at [ffff880000097000] 97000 size 24576
[ 0.000000] reserving inaccessible SNB gfx pages
[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[ 0.000000] [mem 0x00000000-0x000fffff] page 4k
[ 0.000000] BRK [0x02cad000, 0x02cadfff] PGTABLE
[ 0.000000] BRK [0x02cae000, 0x02caefff] PGTABLE
[ 0.000000] BRK [0x02caf000, 0x02caffff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0x11fc00000-0x11fdfffff]
[ 0.000000] [mem 0x11fc00000-0x11fdfffff] page 2M
[ 0.000000] BRK [0x02cb0000, 0x02cb0fff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0x11c000000-0x11fbfffff]
[ 0.000000] [mem 0x11c000000-0x11fbfffff] page 2M
[ 0.000000] init_memory_mapping: [mem 0x100000000-0x11bffffff]
[ 0.000000] [mem 0x100000000-0x11bffffff] page 2M
[ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff]
[ 0.000000] [mem 0x00100000-0x001fffff] page 4k
[ 0.000000] [mem 0x00200000-0x1fffffff] page 2M
[ 0.000000] init_memory_mapping: [mem 0x20200000-0x3fffffff]
[ 0.000000] [mem 0x20200000-0x3fffffff] page 2M
[ 0.000000] init_memory_mapping: [mem 0x40200000-0xd9c9efff]
[ 0.000000] [mem 0x40200000-0xd9bfffff] page 2M
[ 0.000000] [mem 0xd9c00000-0xd9c9efff] page 4k
[ 0.000000] BRK [0x02cb1000, 0x02cb1fff] PGTABLE
[ 0.000000] BRK [0x02cb2000, 0x02cb2fff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0xdafff000-0xdaffffff]
[ 0.000000] [mem 0xdafff000-0xdaffffff] page 4k
[ 0.000000] RAMDISK: [mem 0x37936000-0x37c92fff]
[ 0.000000] ACPI: Early table checksum verification disabled
[ 0.000000] ACPI: RSDP 0x00000000000F0100 000024 (v02 SECCSD)
[ 0.000000] ACPI: XSDT 0x00000000DAFFE170 00008C (v01 SECCSD LH43STAR 00000002 PTEC 00000002)
[ 0.000000] ACPI: FACP 0x00000000DAFEF000 00010C (v05 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: DSDT 0x00000000DAFF2000 0083AC (v02 SECCSD SNB-CPT 00000000 INTL 20061109)
[ 0.000000] ACPI: FACS 0x00000000DAF47000 000040
[ 0.000000] ACPI: SLIC 0x00000000DAFFD000 000176 (v01 SECCSD LH43STAR 00000002 PTEC 00000001)
[ 0.000000] ACPI: SSDT 0x00000000DAFFB000 001068 (v01 SECCSD PtidDevc 00001000 INTL 20061109)
[ 0.000000] ACPI: ASF! 0x00000000DAFF1000 0000A5 (v32 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: HPET 0x00000000DAFEE000 000038 (v01 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: APIC 0x00000000DAFED000 000098 (v03 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: MCFG 0x00000000DAFEC000 00003C (v01 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: SSDT 0x00000000DAFEB000 000804 (v01 PmRef Cpu0Ist 00003000 INTL 20061109)
[ 0.000000] ACPI: SSDT 0x00000000DAFEA000 000996 (v01 PmRef CpuPm 00003000 INTL 20061109)
[ 0.000000] ACPI: UEFI 0x00000000DAFE9000 00003E (v01 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: UEFI 0x00000000DAFE8000 000042 (v01 PTL COMBUF 00000001 PTL 00000001)
[ 0.000000] ACPI: UEFI 0x00000000DAFE7000 00026A (v01 SECCSD LH43STAR 00000002 PTL 00000002)
[ 0.000000] ACPI: SSDT 0x00000000DAFE6000 0000D0 (v01 Iffs IffsAsl 00003000 INTL 20061109)
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] No NUMA configuration found
[ 0.000000] Faking a node at [mem 0x0000000000000000-0x000000011fdfffff]
[ 0.000000] NODE_DATA(0) allocated [mem 0x11fdf8000-0x11fdfcfff]
[ 0.000000] [ffffea0000000000-ffffea00047fffff] PMD -> [ffff88011b400000-ffff88011f3fffff] on node 0
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
[ 0.000000] DMA32 [mem 0x01000000-0xffffffff]
[ 0.000000] Normal [mem 0x100000000-0x11fdfffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00001000-0x0009cfff]
[ 0.000000] node 0: [mem 0x00100000-0x1fffffff]
[ 0.000000] node 0: [mem 0x20200000-0x3fffffff]
[ 0.000000] node 0: [mem 0x40200000-0xd9c9efff]
[ 0.000000] node 0: [mem 0xdafff000-0xdaffffff]
[ 0.000000] node 0: [mem 0x100000000-0x11fdfffff]
[ 0.000000] Initmem setup node 0 [mem 0x00001000-0x11fdfffff]
[ 0.000000] On node 0 totalpages: 1021500
[ 0.000000] DMA zone: 64 pages used for memmap
[ 0.000000] DMA zone: 156 pages reserved
[ 0.000000] DMA zone: 3996 pages, LIFO batch:0
[ 0.000000] DMA32 zone: 13859 pages used for memmap
[ 0.000000] DMA32 zone: 886944 pages, LIFO batch:31
[ 0.000000] Normal zone: 2040 pages used for memmap
[ 0.000000] Normal zone: 130560 pages, LIFO batch:31
[ 0.000000] Reserving Intel graphics stolen memory at 0xdba00000-0xdf9fffff
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x02] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x0e] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 14, version 32, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] ACPI: HPET id: 0x8086a301 base: 0xfed00000
[ 0.000000] smpboot: Allowing 8 CPUs, 4 hotplug CPUs
[ 0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.000000] PM: Registered nosave memory: [mem 0x0009d000-0x0009dfff]
[ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x40000000-0x401fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xd9c9f000-0xdae7efff]
[ 0.000000] PM: Registered nosave memory: [mem 0xdae7f000-0xdaf9efff]
[ 0.000000] PM: Registered nosave memory: [mem 0xdaf9f000-0xdaffefff]
[ 0.000000] PM: Registered nosave memory: [mem 0xdb000000-0xdf9fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xdfa00000-0xf7ffffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xf8000000-0xfbffffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfc000000-0xfebfffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfed07fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed08000-0xfed08fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed09000-0xfed0ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed10000-0xfed19fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed1a000-0xfed1bfff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xfedfffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xffd7ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xffd80000-0xffffffff]
[ 0.000000] e820: [mem 0xdfa00000-0xf7ffffff] available for PCI devices
[ 0.000000] Booting paravirtualized kernel on bare hardware
[ 0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:8 nr_node_ids:1
[ 0.000000] PERCPU: Embedded 32 pages/cpu @ffff88011fa00000 s91520 r8192 d31360 u262144
[ 0.000000] pcpu-alloc: s91520 r8192 d31360 u262144 alloc=1*2097152
[ 0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7
[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 1005381
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.19.0-rc2-next20141231-2-iniza-small root=UUID=001AADA61AAD9964 loop=/ubuntu/disks/root.disk ro
[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[ 0.000000] AGP: Checking aperture...
[ 0.000000] AGP: No AGP bridge found
[ 0.000000] Calgary: detecting Calgary via BIOS EBDA area
[ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[ 0.000000] Memory: 3919072K/4086000K available (7597K kernel code, 1297K rwdata, 3376K rodata, 1380K init, 14360K bss, 166928K reserved, 0K cma-reserved)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=8.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[ 0.000000] NR_IRQS:16640 nr_irqs:488 16
[ 0.000000] Console: colour dummy device 80x25
[ 0.000000] console [tty0] enabled
[ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.000000] ... MAX_LOCK_DEPTH: 48
[ 0.000000] ... MAX_LOCKDEP_KEYS: 8191
[ 0.000000] ... CLASSHASH_SIZE: 4096
[ 0.000000] ... MAX_LOCKDEP_ENTRIES: 32768
[ 0.000000] ... MAX_LOCKDEP_CHAINS: 65536
[ 0.000000] ... CHAINHASH_SIZE: 32768
[ 0.000000] memory used by lock dependency info: 8159 kB
[ 0.000000] per task-struct memory footprint: 1920 bytes
[ 0.000000] hpet clockevent registered
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 1596.420 MHz processor
[ 0.000072] Calibrating delay loop (skipped), value calculated using timer frequency.. 3192.84 BogoMIPS (lpj=6385680)
[ 0.000080] pid_max: default: 32768 minimum: 301
[ 0.000102] ACPI: Core revision 20141107
[ 0.018386] ACPI: All ACPI Tables successfully acquired
[ 0.020045] Security Framework initialized
[ 0.020057] AppArmor: AppArmor initialized
[ 0.020061] Yama: becoming mindful.
[ 0.020996] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.022267] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.022741] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.022761] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.023784] Initializing cgroup subsys memory
[ 0.023820] Initializing cgroup subsys devices
[ 0.023850] Initializing cgroup subsys freezer
[ 0.023877] Initializing cgroup subsys blkio
[ 0.023884] Initializing cgroup subsys perf_event
[ 0.023893] Initializing cgroup subsys hugetlb
[ 0.023946] Disabled fast string operations
[ 0.023950] CPU: Physical Processor ID: 0
[ 0.023953] CPU: Processor Core ID: 0
[ 0.023960] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[ 0.023960] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[ 0.023968] mce: CPU supports 7 MCE banks
[ 0.023983] CPU0: Thermal monitoring enabled (TM1)
[ 0.024003] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
[ 0.024003] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[ 0.024201] Freeing SMP alternatives memory: 24K (ffffffff81e9f000 - ffffffff81ea5000)
[ 0.025519] ftrace: allocating 28220 entries in 111 pages
[ 0.041850] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.081515] smpboot: CPU0: Intel(R) Core(TM) i5-2467M CPU @ 1.60GHz (fam: 06, model: 2a, stepping: 07)
[ 0.081530] TSC deadline timer enabled
[ 0.081572] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, full-width counters, Intel PMU driver.
[ 0.081609] ... version: 3
[ 0.081612] ... bit width: 48
[ 0.081615] ... generic registers: 4
[ 0.081617] ... value mask: 0000ffffffffffff
[ 0.081620] ... max period: 0000ffffffffffff
[ 0.081623] ... fixed-purpose events: 3
[ 0.081626] ... event mask: 000000070000000f
[ 0.083251] x86: Booting SMP configuration:
[ 0.083256] .... node #0, CPUs: #1
[ 0.094208] Disabled fast string operations
[ 0.096645] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[ 0.097010] #2
[ 0.107957] Disabled fast string operations
[ 0.110434] #3<6>[ 0.121384] Disabled fast string operations
[ 0.123541] x86: Booted up 1 node, 4 CPUs
[ 0.123550] smpboot: Total of 4 processors activated (12771.36 BogoMIPS)
[ 0.128244] devtmpfs: initialized
[ 0.133073] evm: security.selinux
[ 0.133077] evm: security.SMACK64
[ 0.133080] evm: security.capability
[ 0.133221] PM: Registering ACPI NVS region [mem 0xdae7f000-0xdaf9efff] (1179648 bytes)
[ 0.134635] NET: Registered protocol family 16
[ 0.143649] cpuidle: using governor ladder
[ 0.154111] cpuidle: using governor menu
[ 0.154278] ACPI: bus type PCI registered
[ 0.154530] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf8000000-0xfbffffff] (base 0xf8000000)
[ 0.154537] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved in E820
[ 0.154669] PCI: Using configuration type 1 for base access
[ 0.167579] ACPI: Added _OSI(Module Device)
[ 0.167585] ACPI: Added _OSI(Processor Device)
[ 0.167589] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.167592] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.179264] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.186099] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 0.187705] ACPI: Dynamic OEM Table Load:
[ 0.187729] ACPI: SSDT 0xFFFF88011A794000 000688 (v01 PmRef Cpu0Cst 00003001 INTL 20061109)
[ 0.189695] ACPI: Dynamic OEM Table Load:
[ 0.189716] ACPI: SSDT 0xFFFF88011A7C0800 000303 (v01 PmRef ApIst 00003000 INTL 20061109)
[ 0.191544] ACPI: Dynamic OEM Table Load:
[ 0.191565] ACPI: SSDT 0xFFFF88011A7BDA00 000119 (v01 PmRef ApCst 00003000 INTL 20061109)
[ 0.195971] ACPI: Interpreter enabled
[ 0.195994] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20141107/hwxface-580)
[ 0.196045] ACPI: (supports S0 S1 S3 S4 S5)
[ 0.196049] ACPI: Using IOAPIC for interrupt routing
[ 0.196109] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.213209] ACPI: Power Resource [FN00] (off)
[ 0.213576] ACPI: Power Resource [FN01] (off)
[ 0.213846] ACPI: Power Resource [FN02] (off)
[ 0.214114] ACPI: Power Resource [FN03] (off)
[ 0.214389] ACPI: Power Resource [FN04] (off)
[ 0.216407] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[ 0.216417] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[ 0.216908] \_SB_.PCI0:_OSC invalid UUID
[ 0.216910] _OSC request data:1 1f 0
[ 0.216916] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
[ 0.218100] PCI host bridge to bus 0000:00
[ 0.218107] pci_bus 0000:00: root bus resource [bus 00-3e]
[ 0.218112] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
[ 0.218116] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
[ 0.218121] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[ 0.218125] pci_bus 0000:00: root bus resource [mem 0xdfa00000-0xfeafffff]
[ 0.218130] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[ 0.218179] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[ 0.218515] pci 0000:00:02.0: [8086:0116] type 00 class 0x030000
[ 0.218535] pci 0000:00:02.0: reg 0x10: [mem 0xf0000000-0xf03fffff 64bit]
[ 0.218546] pci 0000:00:02.0: reg 0x18: [mem 0xe0000000-0xefffffff 64bit pref]
[ 0.218554] pci 0000:00:02.0: reg 0x20: [io 0x3000-0x303f]
[ 0.218934] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[ 0.218976] pci 0000:00:16.0: reg 0x10: [mem 0xf0705000-0xf070500f 64bit]
[ 0.219125] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[ 0.219430] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[ 0.219468] pci 0000:00:1a.0: reg 0x10: [mem 0xf070a000-0xf070a3ff]
[ 0.219653] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 0.219916] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[ 0.219952] pci 0000:00:1b.0: reg 0x10: [mem 0xf0700000-0xf0703fff 64bit]
[ 0.220123] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.220288] pci 0000:00:1b.0: System wakeup disabled by ACPI
[ 0.220425] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[ 0.220595] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.220731] pci 0000:00:1c.0: System wakeup disabled by ACPI
[ 0.220867] pci 0000:00:1c.3: [8086:1c16] type 01 class 0x060400
[ 0.221038] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 0.221173] pci 0000:00:1c.3: System wakeup disabled by ACPI
[ 0.221307] pci 0000:00:1c.4: [8086:1c18] type 01 class 0x060400
[ 0.221484] pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
[ 0.221753] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[ 0.221791] pci 0000:00:1d.0: reg 0x10: [mem 0xf0709000-0xf07093ff]
[ 0.221967] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 0.222220] pci 0000:00:1f.0: [8086:1c49] type 00 class 0x060100
[ 0.222628] pci 0000:00:1f.2: [8086:1c03] type 00 class 0x010601
[ 0.222670] pci 0000:00:1f.2: reg 0x10: [io 0x3088-0x308f]
[ 0.222687] pci 0000:00:1f.2: reg 0x14: [io 0x3094-0x3097]
[ 0.222703] pci 0000:00:1f.2: reg 0x18: [io 0x3080-0x3087]
[ 0.222720] pci 0000:00:1f.2: reg 0x1c: [io 0x3090-0x3093]
[ 0.222736] pci 0000:00:1f.2: reg 0x20: [io 0x3060-0x307f]
[ 0.222752] pci 0000:00:1f.2: reg 0x24: [mem 0xf0708000-0xf07087ff]
[ 0.222866] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.223113] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[ 0.223145] pci 0000:00:1f.3: reg 0x10: [mem 0xf0704000-0xf07040ff 64bit]
[ 0.223191] pci 0000:00:1f.3: reg 0x20: [io 0xefa0-0xefbf]
[ 0.223895] pci 0000:01:00.0: [8086:0091] type 00 class 0x028000
[ 0.224240] pci 0000:01:00.0: reg 0x10: [mem 0xf0600000-0xf0601fff 64bit]
[ 0.226014] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[ 0.226330] pci 0000:01:00.0: System wakeup disabled by ACPI
[ 0.231931] pci 0000:00:1c.0: PCI bridge to [bus 01]
[ 0.231945] pci 0000:00:1c.0: bridge window [mem 0xf0600000-0xf06fffff]
[ 0.232185] pci 0000:02:00.0: [10ec:8168] type 00 class 0x020000
[ 0.232278] pci 0000:02:00.0: reg 0x10: [io 0x2000-0x20ff]
[ 0.232414] pci 0000:02:00.0: reg 0x18: [mem 0xf0404000-0xf0404fff 64bit pref]
[ 0.232499] pci 0000:02:00.0: reg 0x20: [mem 0xf0400000-0xf0403fff 64bit pref]
[ 0.232970] pci 0000:02:00.0: supports D1 D2
[ 0.232973] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.233124] pci 0000:02:00.0: System wakeup disabled by ACPI
[ 0.239814] pci 0000:00:1c.3: PCI bridge to [bus 02]
[ 0.239823] pci 0000:00:1c.3: bridge window [io 0x2000-0x2fff]
[ 0.239838] pci 0000:00:1c.3: bridge window [mem 0xf0400000-0xf04fffff 64bit pref]
[ 0.240041] pci 0000:03:00.0: [1b21:1042] type 00 class 0x0c0330
[ 0.240090] pci 0000:03:00.0: reg 0x10: [mem 0xf0500000-0xf0507fff 64bit]
[ 0.240365] pci 0000:03:00.0: PME# supported from D3hot D3cold
[ 0.240610] pci 0000:00:1c.4: PCI bridge to [bus 03]
[ 0.240623] pci 0000:00:1c.4: bridge window [mem 0xf0500000-0xf05fffff]
[ 0.242319] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.242459] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 0.242597] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.242733] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.242878] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 10 11 12 14 15) *9
[ 0.243014] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 0.243151] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.243286] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 10 11 12 14 15) *9
[ 0.244411] ACPI: Enabled 4 GPEs in block 00 to 3F
[ 0.244536] ACPI : EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 0.244896] ACPI : EC: 0 stale EC events cleared
[ 0.245528] vgaarb: setting as boot device: PCI:0000:00:02.0
[ 0.245534] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.245545] vgaarb: loaded
[ 0.245547] vgaarb: bridge control possible 0000:00:02.0
[ 0.246151] SCSI subsystem initialized
[ 0.246296] libata version 3.00 loaded.
[ 0.246379] ACPI: bus type USB registered
[ 0.246437] usbcore: registered new interface driver usbfs
[ 0.246470] usbcore: registered new interface driver hub
[ 0.246534] usbcore: registered new device driver usb
[ 0.246900] PCI: Using ACPI for IRQ routing
[ 0.250465] PCI: pci_cache_line_size set to 64 bytes
[ 0.250593] e820: reserve RAM buffer [mem 0x0009d800-0x0009ffff]
[ 0.250601] e820: reserve RAM buffer [mem 0xd9c9f000-0xdbffffff]
[ 0.250604] e820: reserve RAM buffer [mem 0xdb000000-0xdbffffff]
[ 0.250606] e820: reserve RAM buffer [mem 0x11fe00000-0x11fffffff]
[ 0.251230] NetLabel: Initializing
[ 0.251234] NetLabel: domain hash size = 128
[ 0.251236] NetLabel: protocols = UNLABELED CIPSOv4
[ 0.251284] NetLabel: unlabeled traffic allowed by default
[ 0.251449] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 0.251461] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 0.253547] Switched to clocksource hpet
[ 0.292289] AppArmor: AppArmor Filesystem Enabled
[ 0.292516] pnp: PnP ACPI init
[ 0.293125] system 00:00: [io 0x0680-0x069f] has been reserved
[ 0.293132] system 00:00: [io 0x1000-0x100f] has been reserved
[ 0.293137] system 00:00: [io 0x5000-0x5003] has been reserved
[ 0.293142] system 00:00: [io 0xffff] has been reserved
[ 0.293148] system 00:00: [io 0x0400-0x0453] could not be reserved
[ 0.293153] system 00:00: [io 0x0458-0x047f] has been reserved
[ 0.293157] system 00:00: [io 0x0500-0x057f] has been reserved
[ 0.293162] system 00:00: [io 0x0a00-0x0a0f] has been reserved
[ 0.293167] system 00:00: [io 0x164e-0x164f] has been reserved
[ 0.293172] system 00:00: [io 0x5000-0x500f] could not be reserved
[ 0.293204] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.293292] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.293425] system 00:02: [io 0x0454-0x0457] has been reserved
[ 0.293434] system 00:02: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[ 0.293540] pnp 00:03: Plug and Play ACPI device, IDs PNP0303 (active)
[ 0.293655] pnp 00:04: Plug and Play ACPI device, IDs ETD0b00 SYN0002 PNP0f13 (active)
[ 0.294003] system 00:05: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 0.294010] system 00:05: [mem 0xfed10000-0xfed17fff] has been reserved
[ 0.294015] system 00:05: [mem 0xfed18000-0xfed18fff] has been reserved
[ 0.294020] system 00:05: [mem 0xfed19000-0xfed19fff] has been reserved
[ 0.294025] system 00:05: [mem 0xf8000000-0xfbffffff] has been reserved
[ 0.294030] system 00:05: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 0.294035] system 00:05: [mem 0xfed90000-0xfed93fff] has been reserved
[ 0.294040] system 00:05: [mem 0xfed45000-0xfed8ffff] has been reserved
[ 0.294045] system 00:05: [mem 0xff000000-0xffffffff] could not be reserved
[ 0.294051] system 00:05: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 0.294058] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.294834] system 00:06: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.294896] pnp: PnP ACPI: found 7 devices
[ 0.305133] pci 0000:00:1c.0: PCI bridge to [bus 01]
[ 0.305147] pci 0000:00:1c.0: bridge window [mem 0xf0600000-0xf06fffff]
[ 0.305164] pci 0000:00:1c.3: PCI bridge to [bus 02]
[ 0.305170] pci 0000:00:1c.3: bridge window [io 0x2000-0x2fff]
[ 0.305185] pci 0000:00:1c.3: bridge window [mem 0xf0400000-0xf04fffff 64bit pref]
[ 0.305198] pci 0000:00:1c.4: PCI bridge to [bus 03]
[ 0.305208] pci 0000:00:1c.4: bridge window [mem 0xf0500000-0xf05fffff]
[ 0.305226] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
[ 0.305228] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
[ 0.305230] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[ 0.305232] pci_bus 0000:00: resource 7 [mem 0xdfa00000-0xfeafffff]
[ 0.305234] pci_bus 0000:00: resource 8 [mem 0xfed40000-0xfed44fff]
[ 0.305236] pci_bus 0000:01: resource 1 [mem 0xf0600000-0xf06fffff]
[ 0.305238] pci_bus 0000:02: resource 0 [io 0x2000-0x2fff]
[ 0.305241] pci_bus 0000:02: resource 2 [mem 0xf0400000-0xf04fffff 64bit pref]
[ 0.305243] pci_bus 0000:03: resource 1 [mem 0xf0500000-0xf05fffff]
[ 0.305345] NET: Registered protocol family 2
[ 0.305875] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[ 0.306316] TCP bind hash table entries: 32768 (order: 9, 2097152 bytes)
[ 0.308528] TCP: Hash tables configured (established 32768 bind 32768)
[ 0.308615] TCP: reno registered
[ 0.308679] UDP hash table entries: 2048 (order: 6, 327680 bytes)
[ 0.309034] UDP-Lite hash table entries: 2048 (order: 6, 327680 bytes)
[ 0.309634] NET: Registered protocol family 1
[ 0.309666] pci 0000:00:02.0: Video device with shadowed ROM
[ 0.311141] PCI: CLS 64 bytes, default 64
[ 0.311361] Trying to unpack rootfs image as initramfs...
[ 0.391840] Freeing initrd memory: 3444K (ffff880037936000 - ffff880037c93000)
[ 0.391859] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.391864] software IO TLB [mem 0xd5c9f000-0xd9c9f000] (64MB) mapped at [ffff8800d5c9f000-ffff8800d9c9efff]
[ 0.392542] RAPL PMU detected, hw unit 2^-16 Joules, API unit is 2^-32 Joules, 3 fixed counters 163840 ms ovfl timer
[ 0.392743] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x28
[ 0.392762] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x28
[ 0.392786] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x28
[ 0.392814] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x28
[ 0.392974] microcode: Microcode Update Driver: v2.00 <tigran@xxxxxxxxxxxxxxxxxxxx>, Peter Oruba
[ 0.393039] Scanning for low memory corruption every 60 seconds
[ 0.394282] futex hash table entries: 2048 (order: 6, 262144 bytes)
[ 0.394444] Initialise system trusted keyring
[ 0.394567] audit: initializing netlink subsys (disabled)
[ 0.394637] audit: type=2000 audit(1420060004.392:1): initialized
[ 0.395515] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 0.395964] VFS: Disk quotas dquot_6.5.2
[ 0.396006] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.396835] fuse init (API version 7.23)
[ 0.397934] Key type asymmetric registered
[ 0.397954] Asymmetric key parser 'x509' registered
[ 0.397998] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 0.398129] io scheduler noop registered
[ 0.398136] io scheduler deadline registered (default)
[ 0.398164] io scheduler cfq registered
[ 0.398169] start plist test
[ 0.401066] end plist test
[ 0.402162] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 0.402289] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 0.402482] intel_idle: MWAIT substates: 0x21120
[ 0.402484] intel_idle: v0.4 model 0x2A
[ 0.402485] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 0.403930] ACPI: AC Adapter [ADP1] (on-line)
[ 0.404610] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[ 0.404653] ACPI: Lid Switch [LID0]
[ 0.404775] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[ 0.404817] ACPI: Power Button [PWRB]
[ 0.404940] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[ 0.404948] ACPI: Power Button [PWRF]
[ 0.408148] thermal LNXTHERM:00: registered as thermal_zone0
[ 0.408154] ACPI: Thermal Zone [TZ00] (68 C)
[ 0.408747] thermal LNXTHERM:01: registered as thermal_zone1
[ 0.408752] ACPI: Thermal Zone [TZ01] (30 C)
[ 0.408876] GHES: HEST is not enabled!
[ 0.409140] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[ 0.415501] ACPI: Battery Slot [BAT1] (battery present)
[ 0.417702] Linux agpgart interface v0.103
[ 0.422256] brd: module loaded
[ 0.426082] loop: module loaded
[ 0.429872] ahci 0000:00:1f.2: version 3.0
[ 0.430232] ahci 0000:00:1f.2: SSS flag set, parallel bus scan disabled
[ 0.430282] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x1b impl SATA mode
[ 0.430289] ahci 0000:00:1f.2: flags: 64bit ncq sntf ilck stag pm led clo pio slum part ems sxs apst
[ 0.455405] scsi host0: ahci
[ 0.455796] scsi host1: ahci
[ 0.456086] scsi host2: ahci
[ 0.456369] scsi host3: ahci
[ 0.456677] scsi host4: ahci
[ 0.456982] scsi host5: ahci
[ 0.457131] ata1: SATA max UDMA/133 abar m2048@0xf0708000 port 0xf0708100 irq 25
[ 0.457137] ata2: SATA max UDMA/133 abar m2048@0xf0708000 port 0xf0708180 irq 25
[ 0.457141] ata3: DUMMY
[ 0.457145] ata4: SATA max UDMA/133 abar m2048@0xf0708000 port 0xf0708280 irq 25
[ 0.457150] ata5: SATA max UDMA/133 abar m2048@0xf0708000 port 0xf0708300 irq 25
[ 0.457153] ata6: DUMMY
[ 0.458433] libphy: Fixed MDIO Bus: probed
[ 0.458761] tun: Universal TUN/TAP device driver, 1.6
[ 0.458764] tun: (C) 1999-2004 Max Krasnyansky <maxk@xxxxxxxxxxxx>
[ 0.458909] PPP generic driver version 2.4.2
[ 0.459234] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 0.459397] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 1
[ 0.469861] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.469867] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.469872] usb usb1: Product: xHCI Host Controller
[ 0.469876] usb usb1: Manufacturer: Linux 3.19.0-rc2-next20141231-2-iniza-small xhci-hcd
[ 0.469880] usb usb1: SerialNumber: 0000:03:00.0
[ 0.470603] hub 1-0:1.0: USB hub found
[ 0.470675] hub 1-0:1.0: 2 ports detected
[ 0.471460] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 0.471472] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 2
[ 0.471634] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[ 0.471639] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.471644] usb usb2: Product: xHCI Host Controller
[ 0.471647] usb usb2: Manufacturer: Linux 3.19.0-rc2-next20141231-2-iniza-small xhci-hcd
[ 0.471652] usb usb2: SerialNumber: 0000:03:00.0
[ 0.472073] hub 2-0:1.0: USB hub found
[ 0.472121] hub 2-0:1.0: 2 ports detected
[ 0.472576] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.472584] ehci-pci: EHCI PCI platform driver
[ 0.472885] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 0.472907] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 3
[ 0.472934] ehci-pci 0000:00:1a.0: debug port 2
[ 0.476862] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 0.476910] ehci-pci 0000:00:1a.0: irq 16, io mem 0xf070a000
[ 0.485428] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 0.485559] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.485564] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.485569] usb usb3: Product: EHCI Host Controller
[ 0.485572] usb usb3: Manufacturer: Linux 3.19.0-rc2-next20141231-2-iniza-small ehci_hcd
[ 0.485577] usb usb3: SerialNumber: 0000:00:1a.0
[ 0.486029] hub 3-0:1.0: USB hub found
[ 0.486053] hub 3-0:1.0: 2 ports detected
[ 0.486730] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 0.486748] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 4
[ 0.486773] ehci-pci 0000:00:1d.0: debug port 2
[ 0.490707] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 0.490747] ehci-pci 0000:00:1d.0: irq 23, io mem 0xf0709000
[ 0.501411] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 0.501536] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.501542] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.501547] usb usb4: Product: EHCI Host Controller
[ 0.501550] usb usb4: Manufacturer: Linux 3.19.0-rc2-next20141231-2-iniza-small ehci_hcd
[ 0.501555] usb usb4: SerialNumber: 0000:00:1d.0
[ 0.501956] hub 4-0:1.0: USB hub found
[ 0.501979] hub 4-0:1.0: 2 ports detected
[ 0.502346] ehci-platform: EHCI generic platform driver
[ 0.502377] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.502395] ohci-pci: OHCI PCI platform driver
[ 0.502428] ohci-platform: OHCI generic platform driver
[ 0.502456] uhci_hcd: USB Universal Host Controller Interface driver
[ 0.502578] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:EPAD] at 0x60,0x64 irq 1,12
[ 0.509748] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 0.509808] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 0.510405] mousedev: PS/2 mouse device common for all mice
[ 0.511622] rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0
[ 0.511664] rtc_cmos 00:01: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 0.511722] device-mapper: uevent: version 1.0.3
[ 0.511870] device-mapper: ioctl: 4.30.0-ioctl (2014-12-22) initialised: dm-devel@xxxxxxxxxx
[ 0.511896] Intel P-state driver initializing.
[ 0.512811] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.513107] TCP: cubic registered
[ 0.513808] NET: Registered protocol family 10
[ 0.515691] NET: Registered protocol family 17
[ 0.515762] Key type dns_resolver registered
[ 0.517919] Loading compiled-in X.509 certificates
[ 0.519148] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
[ 0.519246] Loaded X.509 cert 'Magrathea: Glacier signing key: 3b2505cd9d470bb2d3ac2fbbf793d0487e1c6b49'
[ 0.519303] registered taskstats version 1
[ 0.524713] Key type trusted registered
[ 0.539799] Key type encrypted registered
[ 0.539817] AppArmor: AppArmor sha1 policy hashing enabled
[ 0.539824] evm: HMAC attrs: 0x1
[ 0.540690] rtc_cmos 00:01: setting system clock to 2014-12-31 21:06:44 UTC (1420060004)
[ 0.540820] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[ 0.540825] EDD information not available.
[ 0.773351] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 0.774657] ata1.00: ATA-8: Hitachi HTS545050A7E380, GG2OA6C0, max UDMA/133
[ 0.774675] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 0.776056] ata1.00: configured for UDMA/133
[ 0.776900] scsi 0:0:0:0: Direct-Access ATA Hitachi HTS54505 A6C0 PQ: 0 ANSI: 5
[ 0.777948] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB)
[ 0.777956] sd 0:0:0:0: [sda] 4096-byte physical blocks
[ 0.778186] sd 0:0:0:0: [sda] Write Protect is off
[ 0.778193] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 0.778269] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 0.778274] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 0.791714] sda: sda1 sda2 sda3
[ 0.792751] sd 0:0:0:0: [sda] Attached SCSI disk
[ 0.797309] usb 3-1: new high-speed USB device number 2 using ehci-pci
[ 0.813280] usb 4-1: new high-speed USB device number 2 using ehci-pci
[ 0.929778] usb 3-1: New USB device found, idVendor=8087, idProduct=0024
[ 0.929786] usb 3-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 0.930321] hub 3-1:1.0: USB hub found
[ 0.930439] hub 3-1:1.0: 6 ports detected
[ 0.945991] usb 4-1: New USB device found, idVendor=8087, idProduct=0024
[ 0.946014] usb 4-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 0.946727] hub 4-1:1.0: USB hub found
[ 0.946967] hub 4-1:1.0: 6 ports detected
[ 1.097122] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1.097701] ata2.00: ATA-8: SanDisk iSSD P4 16GB, SSD 9.14, max UDMA/133
[ 1.097709] ata2.00: 31277232 sectors, multi 1: LBA48
[ 1.098408] ata2.00: configured for UDMA/133
[ 1.098703] scsi 1:0:0:0: Direct-Access ATA SanDisk iSSD P4 9.14 PQ: 0 ANSI: 5
[ 1.099354] sd 1:0:0:0: [sdb] 31277232 512-byte logical blocks: (16.0 GB/14.9 GiB)
[ 1.099478] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 1.099479] sd 1:0:0:0: [sdb] Write Protect is off
[ 1.099482] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.099517] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.100545] sdb: sdb1 sdb2
[ 1.101376] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 1.201313] usb 3-1.2: new high-speed USB device number 3 using ehci-pci
[ 1.217334] usb 4-1.4: new low-speed USB device number 3 using ehci-pci
[ 1.296033] usb 3-1.2: New USB device found, idVendor=12d1, idProduct=1436
[ 1.296056] usb 3-1.2: New USB device strings: Mfr=4, Product=3, SerialNumber=0
[ 1.296069] usb 3-1.2: Product: HUAWEI Mobile
[ 1.296078] usb 3-1.2: Manufacturer: HUAWEI Technology
[ 1.315229] usb 4-1.4: New USB device found, idVendor=046d, idProduct=c00e
[ 1.315253] usb 4-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.315258] usb 4-1.4: Product: USB-PS/2 Optical Mouse
[ 1.315261] usb 4-1.4: Manufacturer: Logitech
[ 1.369205] usb 3-1.4: new high-speed USB device number 4 using ehci-pci
[ 1.384968] usb 4-1.5: new full-speed USB device number 4 using ehci-pci
[ 1.389017] tsc: Refined TSC clocksource calibration: 1596.373 MHz
[ 1.416893] ata4: SATA link down (SStatus 0 SControl 300)
[ 1.482010] usb 4-1.5: New USB device found, idVendor=8086, idProduct=0189
[ 1.482033] usb 4-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1.625155] usb 3-1.4: New USB device found, idVendor=2232, idProduct=1018
[ 1.625177] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.625181] usb 3-1.4: Product: WebCam SC-13HDL11431N
[ 1.625184] usb 3-1.4: Manufacturer: 123
[ 1.736658] ata5: SATA link down (SStatus 0 SControl 300)
[ 1.737483] Freeing unused kernel memory: 1380K (ffffffff81d46000 - ffffffff81e9f000)
[ 1.737491] Write protecting the kernel read-only data: 12288k
[ 1.738197] Freeing unused kernel memory: 584K (ffff88000176e000 - ffff880001800000)
[ 1.738635] Freeing unused kernel memory: 720K (ffff880001b4c000 - ffff880001c00000)
[ 1.771508] udevd[131]: starting version 175
[ 1.921524] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 1.921585] r8169 0000:02:00.0: can't disable ASPM; OS doesn't have ASPM control
[ 1.923498] r8169 0000:02:00.0 eth0: RTL8168evl/8111evl at 0xffffc9000067e000, e8:03:9a:36:17:a9, XID 0c900800 IRQ 31
[ 1.923514] r8169 0000:02:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 1.996003] usb-storage 3-1.2:1.0: USB Mass Storage device detected
[ 1.998869] usb-storage 3-1.2:1.1: USB Mass Storage device detected
[ 2.009470] usb-storage 3-1.2:1.2: USB Mass Storage device detected
[ 2.014512] usb-storage 3-1.2:1.3: USB Mass Storage device detected
[ 2.016227] usb-storage 3-1.2:1.4: USB Mass Storage device detected
[ 2.016581] usb-storage 3-1.2:1.5: USB Mass Storage device detected
[ 2.017830] scsi host11: usb-storage 3-1.2:1.5
[ 2.018526] usb-storage 3-1.2:1.6: USB Mass Storage device detected
[ 2.019057] scsi host12: usb-storage 3-1.2:1.6
[ 2.019553] usbcore: registered new interface driver usb-storage
[ 2.063461] usbcore: registered new interface driver usbhid
[ 2.063473] usbhid: USB HID core driver
[ 2.126117] input: Logitech USB-PS/2 Optical Mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.4/4-1.4:1.0/0003:046D:C00E.0001/input/input6
[ 2.126605] hid-generic 0003:046D:C00E.0001: input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:1d.0-1.4/input0
[ 2.388426] Switched to clocksource tsc
[ 2.898869] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
[ 3.018281] scsi 12:0:0:0: Direct-Access HUAWEI SD Storage 2.31 PQ: 0 ANSI: 2
[ 3.018309] scsi 11:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
[ 3.022571] sr 11:0:0:0: [sr0] scsi-1 drive
[ 3.022585] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 3.023203] sr 11:0:0:0: Attached scsi CD-ROM sr0
[ 3.023513] sr 11:0:0:0: Attached scsi generic sg2 type 5
[ 3.024640] sd 12:0:0:0: Attached scsi generic sg3 type 0
[ 3.026837] sd 12:0:0:0: [sdc] Attached SCSI removable disk
[ 3.595306] random: nonblocking pool is initialized
[ 5.052596] init: ureadahead main process (426) terminated with status 5
[ 9.024784] Adding 262140k swap on /host/ubuntu/disks/swap.disk. Priority:-1 extents:1 across:262140k FS
[ 9.208103] EXT4-fs (loop0): re-mounted. Opts: errors=remount-ro
[ 9.404118] udevd[704]: starting version 175
[ 10.725089] lp: driver loaded but no devices found
[ 12.967381] wmi: Mapper loaded
[ 13.154221] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042f conflicts with OpRegion 0x0000000000000400-0x000000000000047f (\PMIO) (20141107/utaddress-258)
[ 13.154232] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 13.154238] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20141107/utaddress-258)
[ 13.154242] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 13.154244] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20141107/utaddress-258)
[ 13.154249] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 13.154250] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052f conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20141107/utaddress-258)
[ 13.154254] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 13.154256] lpc_ich: Resource conflict(s) found affecting gpio_ich
[ 13.431736] samsung_laptop: detected SABI interface: SwSmi@
[ 13.431740] samsung_laptop: Backlight controlled by ACPI video driver
[ 14.204265] [drm] Initialized drm 1.1.0 20060810
[ 14.286826] ppdev: user-space parallel port driver
[ 14.500712] Bluetooth: Core ver 2.20
[ 14.500759] NET: Registered protocol family 31
[ 14.500762] Bluetooth: HCI device and connection manager initialized
[ 14.500840] Bluetooth: HCI socket layer initialized
[ 14.500848] Bluetooth: L2CAP socket layer initialized
[ 14.500886] Bluetooth: SCO socket layer initialized
[ 14.513767] cfg80211: Calling CRDA to update world regulatory domain
[ 14.652117] usbcore: registered new interface driver btusb
[ 15.108878] psmouse serio1: elantech: assuming hardware version 3 (with firmware version 0x450f00)
[ 15.123950] psmouse serio1: elantech: Synaptics capabilities query result 0x08, 0x17, 0x0c.
[ 15.203834] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input7
[ 15.649123] audit: type=1400 audit(1420056419.615:2): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient" pid=1023 comm="apparmor_parser"
[ 15.649133] audit: type=1400 audit(1420056419.615:3): apparmor="STATUS" operation="profile_load" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1023 comm="apparmor_parser"
[ 15.649139] audit: type=1400 audit(1420056419.615:4): apparmor="STATUS" operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" pid=1023 comm="apparmor_parser"
[ 15.649161] audit: type=1400 audit(1420056419.615:5): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=1013 comm="apparmor_parser"
[ 15.649173] audit: type=1400 audit(1420056419.615:6): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1013 comm="apparmor_parser"
[ 15.649182] audit: type=1400 audit(1420056419.615:7): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=1013 comm="apparmor_parser"
[ 15.650206] audit: type=1400 audit(1420056419.615:8): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1023 comm="apparmor_parser"
[ 15.650217] audit: type=1400 audit(1420056419.615:9): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=1023 comm="apparmor_parser"
[ 15.650238] audit: type=1400 audit(1420056419.615:10): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1013 comm="apparmor_parser"
[ 15.650248] audit: type=1400 audit(1420056419.615:11): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=1013 comm="apparmor_parser"
[ 15.692798] usbcore: registered new interface driver usbserial
[ 15.971271] cfg80211: World regulatory domain updated:
[ 15.971278] cfg80211: DFS Master region: unset
[ 15.971280] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[ 15.971283] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[ 15.971285] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
[ 15.971287] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
[ 15.971289] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[ 15.971291] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[ 16.550749] usbcore: registered new interface driver option
[ 16.551334] usbserial: USB Serial support registered for GSM modem (1-port)
[ 16.551456] option 3-1.2:1.0: GSM modem (1-port) converter detected
[ 16.552698] usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[ 16.552949] option 3-1.2:1.3: GSM modem (1-port) converter detected
[ 16.553172] usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB1
[ 16.553202] option 3-1.2:1.4: GSM modem (1-port) converter detected
[ 16.553380] usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB2
[ 18.373860] Linux video capture interface: v2.00
[ 18.398224] init: failsafe main process (1078) killed by TERM signal
[ 18.605253] cdc_ether 3-1.2:1.1 wwan0: register 'cdc_ether' at usb-0000:00:1a.0-1.2, Mobile Broadband Network Device, 02:50:f3:00:00:00
[ 18.605358] usbcore: registered new interface driver cdc_ether
[ 18.975701] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 18.975707] Bluetooth: BNEP filters: protocol multicast
[ 18.975717] Bluetooth: BNEP socket layer initialized
[ 19.130943] Bluetooth: RFCOMM TTY layer initialized
[ 19.130957] Bluetooth: RFCOMM socket layer initialized
[ 19.130974] Bluetooth: RFCOMM ver 1.11
[ 19.134628] Intel(R) Wireless WiFi driver for Linux, in-tree:
[ 19.134632] Copyright(c) 2003- 2014 Intel Corporation
[ 19.134877] iwlwifi 0000:01:00.0: can't disable ASPM; OS doesn't have ASPM control
[ 19.202346] uvcvideo: Found UVC 1.00 device WebCam SC-13HDL11431N (2232:1018)
[ 19.221989] input: WebCam SC-13HDL11431N as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.4/3-1.4:1.0/input/input8
[ 19.222353] usbcore: registered new interface driver uvcvideo
[ 19.222357] USB Video Class driver (1.1.1)
[ 19.593216] [drm] Memory usable by graphics device = 2048M
[ 19.593273] [drm] Replacing VGA console driver
[ 19.616115] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 19.616119] [drm] Driver supports precise vblank timestamp query.
[ 19.616765] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 19.629910] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 19.630476] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input9
[ 19.631354] [drm] Initialized i915 1.6.0 20141121 for 0000:00:02.0 on minor 0
[ 19.642283] fbcon: inteldrmfb (fb0) is primary device
[ 19.821210] iwlwifi 0000:01:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[ 20.355675] sound hdaudioC0D0: autoconfig: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
[ 20.355677] sound hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 20.355678] sound hdaudioC0D0: hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
[ 20.355679] sound hdaudioC0D0: mono: mono_out=0x0
[ 20.355680] sound hdaudioC0D0: inputs:
[ 20.355683] sound hdaudioC0D0: Internal Mic=0x19
[ 20.355685] sound hdaudioC0D0: Mic=0x18
[ 20.438808] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[ 20.439686] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[ 20.439911] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
[ 20.627498] iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEBUG disabled
[ 20.627500] iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEBUGFS enabled
[ 20.627501] iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEVICE_TRACING enabled
[ 20.627503] iwlwifi 0000:01:00.0: Detected Intel(R) Centrino(R) Advanced-N 6230 AGN, REV=0xB0
[ 20.627983] iwlwifi 0000:01:00.0: L1 Enabled - LTR Disabled
[ 20.640039] Console: switching to colour frame buffer device 170x48
[ 20.644749] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[ 20.644753] i915 0000:00:02.0: registered panic notifier
[ 20.726138] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 25.122127] r8169 0000:02:00.0 eth0: link down
[ 25.122329] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 61.121076] usb 4-1.5: USB disconnect, device number 4
[ 67.676580] PPP BSD Compression module registered
[ 67.681127] PPP Deflate Compression module registered
Michal Marek (2):
kbuild: Fix removal of the debian/ directory
kbuild: Drop support for clean-rule

Ming Lei (5):
blk-mq: export blk_mq_freeze_queue and blk_mq_unfreeze_queue
block: loop: improve performance via blk-mq
block: loop: say goodby to bio
block: loop: introduce lo_discard() and lo_req_flush()
block: loop: don't handle REQ_FUA explicitly

Sedat Dilek (6):
kbuild: deb-pkg: Try to determine distribution
kbuild: deb-pkg: Bump year in debian/copyright file (v3)
kbuild: deb-pkg: Update git repository URL in debian/copyright file (v3)
Merge branch 'for-3.19/deb-pkg-fixes' into 3.19.0-rc2-next20141231-2-iniza-small
Merge branch 'for-3.19/kbuild-fixes' into 3.19.0-rc2-next20141231-2-iniza-small
Merge branch 'for-next20141231/block-loop-mq-v3' into 3.19.0-rc2-next20141231-2-iniza-small

block/blk-mq.c | 4 +-
block/blk-mq.h | 1 -
drivers/block/loop.c | 417 +++++++++++++++++++++++------------------------
drivers/block/loop.h | 17 +-
include/linux/blk-mq.h | 2 +
scripts/Makefile.clean | 19 +--
scripts/package/builddeb | 19 ++-
7 files changed, 245 insertions(+), 234 deletions(-)

diff --git a/block/blk-mq.c b/block/blk-mq.c
index 1076f86..2a0afea 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -135,8 +135,9 @@ void blk_mq_freeze_queue(struct request_queue *q)
blk_mq_freeze_queue_start(q);
blk_mq_freeze_queue_wait(q);
}
+EXPORT_SYMBOL(blk_mq_freeze_queue);

-static void blk_mq_unfreeze_queue(struct request_queue *q)
+void blk_mq_unfreeze_queue(struct request_queue *q)
{
bool wake;

@@ -149,6 +150,7 @@ static void blk_mq_unfreeze_queue(struct request_queue *q)
wake_up_all(&q->mq_freeze_wq);
}
}
+EXPORT_SYMBOL(blk_mq_unfreeze_queue);

bool blk_mq_can_queue(struct blk_mq_hw_ctx *hctx)
{
diff --git a/block/blk-mq.h b/block/blk-mq.h
index 206230e..1bc1be9 100644
--- a/block/blk-mq.h
+++ b/block/blk-mq.h
@@ -27,7 +27,6 @@ struct blk_mq_ctx {

void __blk_mq_complete_request(struct request *rq);
void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async);
-void blk_mq_freeze_queue(struct request_queue *q);
void blk_mq_free_queue(struct request_queue *q);
void blk_mq_clone_flush_request(struct request *flush_rq,
struct request *orig_rq);
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 6cb1beb..185a86d 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -75,6 +75,7 @@
#include <linux/sysfs.h>
#include <linux/miscdevice.h>
#include <linux/falloc.h>
+#include <linux/blk-mq.h>
#include "loop.h"

#include <asm/uaccess.h>
@@ -85,6 +86,8 @@ static DEFINE_MUTEX(loop_index_mutex);
static int max_part;
static int part_shift;

+static struct workqueue_struct *loop_wq;
+
/*
* Transfer functions
*/
@@ -284,12 +287,12 @@ static int do_lo_send_write(struct loop_device *lo, struct bio_vec *bvec,
return ret;
}

-static int lo_send(struct loop_device *lo, struct bio *bio, loff_t pos)
+static int lo_send(struct loop_device *lo, struct request *rq, loff_t pos)
{
int (*do_lo_send)(struct loop_device *, struct bio_vec *, loff_t,
struct page *page);
struct bio_vec bvec;
- struct bvec_iter iter;
+ struct req_iterator iter;
struct page *page = NULL;
int ret = 0;

@@ -303,7 +306,7 @@ static int lo_send(struct loop_device *lo, struct bio *bio, loff_t pos)
do_lo_send = do_lo_send_direct_write;
}

- bio_for_each_segment(bvec, bio, iter) {
+ rq_for_each_segment(bvec, rq, iter) {
ret = do_lo_send(lo, &bvec, pos, page);
if (ret < 0)
break;
@@ -391,19 +394,22 @@ do_lo_receive(struct loop_device *lo,
}

static int
-lo_receive(struct loop_device *lo, struct bio *bio, int bsize, loff_t pos)
+lo_receive(struct loop_device *lo, struct request *rq, int bsize, loff_t pos)
{
struct bio_vec bvec;
- struct bvec_iter iter;
+ struct req_iterator iter;
ssize_t s;

- bio_for_each_segment(bvec, bio, iter) {
+ rq_for_each_segment(bvec, rq, iter) {
s = do_lo_receive(lo, &bvec, bsize, pos);
if (s < 0)
return s;

if (s != bvec.bv_len) {
- zero_fill_bio(bio);
+ struct bio *bio;
+
+ __rq_for_each_bio(bio, rq)
+ zero_fill_bio(bio);
break;
}
pos += bvec.bv_len;
@@ -411,106 +417,58 @@ lo_receive(struct loop_device *lo, struct bio *bio, int bsize, loff_t pos)
return 0;
}

-static int do_bio_filebacked(struct loop_device *lo, struct bio *bio)
+static int lo_discard(struct loop_device *lo, struct request *rq, loff_t pos)
{
- loff_t pos;
+ /*
+ * We use punch hole to reclaim the free space used by the
+ * image a.k.a. discard. However we do not support discard if
+ * encryption is enabled, because it may give an attacker
+ * useful information.
+ */
+ struct file *file = lo->lo_backing_file;
+ int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE;
int ret;

- pos = ((loff_t) bio->bi_iter.bi_sector << 9) + lo->lo_offset;
-
- if (bio_rw(bio) == WRITE) {
- struct file *file = lo->lo_backing_file;
-
- if (bio->bi_rw & REQ_FLUSH) {
- ret = vfs_fsync(file, 0);
- if (unlikely(ret && ret != -EINVAL)) {
- ret = -EIO;
- goto out;
- }
- }
-
- /*
- * We use punch hole to reclaim the free space used by the
- * image a.k.a. discard. However we do not support discard if
- * encryption is enabled, because it may give an attacker
- * useful information.
- */
- if (bio->bi_rw & REQ_DISCARD) {
- struct file *file = lo->lo_backing_file;
- int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE;
-
- if ((!file->f_op->fallocate) ||
- lo->lo_encrypt_key_size) {
- ret = -EOPNOTSUPP;
- goto out;
- }
- ret = file->f_op->fallocate(file, mode, pos,
- bio->bi_iter.bi_size);
- if (unlikely(ret && ret != -EINVAL &&
- ret != -EOPNOTSUPP))
- ret = -EIO;
- goto out;
- }
-
- ret = lo_send(lo, bio, pos);
-
- if ((bio->bi_rw & REQ_FUA) && !ret) {
- ret = vfs_fsync(file, 0);
- if (unlikely(ret && ret != -EINVAL))
- ret = -EIO;
- }
- } else
- ret = lo_receive(lo, bio, lo->lo_blocksize, pos);
+ if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
+ ret = -EOPNOTSUPP;
+ goto out;
+ }

-out:
+ ret = file->f_op->fallocate(file, mode, pos, blk_rq_bytes(rq));
+ if (unlikely(ret && ret != -EINVAL && ret != -EOPNOTSUPP))
+ ret = -EIO;
+ out:
return ret;
}

-/*
- * Add bio to back of pending list
- */
-static void loop_add_bio(struct loop_device *lo, struct bio *bio)
+static int lo_req_flush(struct loop_device *lo, struct request *rq)
{
- lo->lo_bio_count++;
- bio_list_add(&lo->lo_bio_list, bio);
-}
+ struct file *file = lo->lo_backing_file;
+ int ret = vfs_fsync(file, 0);
+ if (unlikely(ret && ret != -EINVAL))
+ ret = -EIO;

-/*
- * Grab first pending buffer
- */
-static struct bio *loop_get_bio(struct loop_device *lo)
-{
- lo->lo_bio_count--;
- return bio_list_pop(&lo->lo_bio_list);
+ return ret;
}

-static void loop_make_request(struct request_queue *q, struct bio *old_bio)
+static int do_req_filebacked(struct loop_device *lo, struct request *rq)
{
- struct loop_device *lo = q->queuedata;
- int rw = bio_rw(old_bio);
-
- if (rw == READA)
- rw = READ;
+ loff_t pos;
+ int ret;

- BUG_ON(!lo || (rw != READ && rw != WRITE));
+ pos = ((loff_t) blk_rq_pos(rq) << 9) + lo->lo_offset;

- spin_lock_irq(&lo->lo_lock);
- if (lo->lo_state != Lo_bound)
- goto out;
- if (unlikely(rw == WRITE && (lo->lo_flags & LO_FLAGS_READ_ONLY)))
- goto out;
- if (lo->lo_bio_count >= q->nr_congestion_on)
- wait_event_lock_irq(lo->lo_req_wait,
- lo->lo_bio_count < q->nr_congestion_off,
- lo->lo_lock);
- loop_add_bio(lo, old_bio);
- wake_up(&lo->lo_event);
- spin_unlock_irq(&lo->lo_lock);
- return;
+ if (rq->cmd_flags & REQ_WRITE) {
+ if (rq->cmd_flags & REQ_FLUSH)
+ ret = lo_req_flush(lo, rq);
+ else if (rq->cmd_flags & REQ_DISCARD)
+ ret = lo_discard(lo, rq, pos);
+ else
+ ret = lo_send(lo, rq, pos);
+ } else
+ ret = lo_receive(lo, rq, lo->lo_blocksize, pos);

-out:
- spin_unlock_irq(&lo->lo_lock);
- bio_io_error(old_bio);
+ return ret;
}

struct switch_request {
@@ -518,57 +476,26 @@ struct switch_request {
struct completion wait;
};

-static void do_loop_switch(struct loop_device *, struct switch_request *);
-
-static inline void loop_handle_bio(struct loop_device *lo, struct bio *bio)
-{
- if (unlikely(!bio->bi_bdev)) {
- do_loop_switch(lo, bio->bi_private);
- bio_put(bio);
- } else {
- int ret = do_bio_filebacked(lo, bio);
- bio_endio(bio, ret);
- }
-}
-
/*
- * worker thread that handles reads/writes to file backed loop devices,
- * to avoid blocking in our make_request_fn. it also does loop decrypting
- * on reads for block backed loop, as that is too heavy to do from
- * b_end_io context where irqs may be disabled.
- *
- * Loop explanation: loop_clr_fd() sets lo_state to Lo_rundown before
- * calling kthread_stop(). Therefore once kthread_should_stop() is
- * true, make_request will not place any more requests. Therefore
- * once kthread_should_stop() is true and lo_bio is NULL, we are
- * done with the loop.
+ * Do the actual switch; called from the BIO completion routine
*/
-static int loop_thread(void *data)
+static void do_loop_switch(struct loop_device *lo, struct switch_request *p)
{
- struct loop_device *lo = data;
- struct bio *bio;
-
- set_user_nice(current, MIN_NICE);
-
- while (!kthread_should_stop() || !bio_list_empty(&lo->lo_bio_list)) {
-
- wait_event_interruptible(lo->lo_event,
- !bio_list_empty(&lo->lo_bio_list) ||
- kthread_should_stop());
-
- if (bio_list_empty(&lo->lo_bio_list))
- continue;
- spin_lock_irq(&lo->lo_lock);
- bio = loop_get_bio(lo);
- if (lo->lo_bio_count < lo->lo_queue->nr_congestion_off)
- wake_up(&lo->lo_req_wait);
- spin_unlock_irq(&lo->lo_lock);
+ struct file *file = p->file;
+ struct file *old_file = lo->lo_backing_file;
+ struct address_space *mapping;

- BUG_ON(!bio);
- loop_handle_bio(lo, bio);
- }
+ /* if no new file, only flush of queued bios requested */
+ if (!file)
+ return;

- return 0;
+ mapping = file->f_mapping;
+ mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
+ lo->lo_backing_file = file;
+ lo->lo_blocksize = S_ISBLK(mapping->host->i_mode) ?
+ mapping->host->i_bdev->bd_block_size : PAGE_SIZE;
+ lo->old_gfp_mask = mapping_gfp_mask(mapping);
+ mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
}

/*
@@ -579,15 +506,18 @@ static int loop_thread(void *data)
static int loop_switch(struct loop_device *lo, struct file *file)
{
struct switch_request w;
- struct bio *bio = bio_alloc(GFP_KERNEL, 0);
- if (!bio)
- return -ENOMEM;
- init_completion(&w.wait);
+
w.file = file;
- bio->bi_private = &w;
- bio->bi_bdev = NULL;
- loop_make_request(lo->lo_queue, bio);
- wait_for_completion(&w.wait);
+
+ /* freeze queue and wait for completion of scheduled requests */
+ blk_mq_freeze_queue(lo->lo_queue);
+
+ /* do the switch action */
+ do_loop_switch(lo, &w);
+
+ /* unfreeze */
+ blk_mq_unfreeze_queue(lo->lo_queue);
+
return 0;
}

@@ -596,39 +526,10 @@ static int loop_switch(struct loop_device *lo, struct file *file)
*/
static int loop_flush(struct loop_device *lo)
{
- /* loop not yet configured, no running thread, nothing to flush */
- if (!lo->lo_thread)
- return 0;
-
return loop_switch(lo, NULL);
}

/*
- * Do the actual switch; called from the BIO completion routine
- */
-static void do_loop_switch(struct loop_device *lo, struct switch_request *p)
-{
- struct file *file = p->file;
- struct file *old_file = lo->lo_backing_file;
- struct address_space *mapping;
-
- /* if no new file, only flush of queued bios requested */
- if (!file)
- goto out;
-
- mapping = file->f_mapping;
- mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
- lo->lo_backing_file = file;
- lo->lo_blocksize = S_ISBLK(mapping->host->i_mode) ?
- mapping->host->i_bdev->bd_block_size : PAGE_SIZE;
- lo->old_gfp_mask = mapping_gfp_mask(mapping);
- mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
-out:
- complete(&p->wait);
-}
-
-
-/*
* loop_change_fd switched the backing store of a loopback device to
* a new file. This is useful for operating system installers to free up
* the original file and in High Availability environments to switch to
@@ -889,12 +790,9 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
lo->transfer = transfer_none;
lo->ioctl = NULL;
lo->lo_sizelimit = 0;
- lo->lo_bio_count = 0;
lo->old_gfp_mask = mapping_gfp_mask(mapping);
mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));

- bio_list_init(&lo->lo_bio_list);
-
if (!(lo_flags & LO_FLAGS_READ_ONLY) && file->f_op->fsync)
blk_queue_flush(lo->lo_queue, REQ_FLUSH);

@@ -906,14 +804,7 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,

set_blocksize(bdev, lo_blocksize);

- lo->lo_thread = kthread_create(loop_thread, lo, "loop%d",
- lo->lo_number);
- if (IS_ERR(lo->lo_thread)) {
- error = PTR_ERR(lo->lo_thread);
- goto out_clr;
- }
lo->lo_state = Lo_bound;
- wake_up_process(lo->lo_thread);
if (part_shift)
lo->lo_flags |= LO_FLAGS_PARTSCAN;
if (lo->lo_flags & LO_FLAGS_PARTSCAN)
@@ -925,18 +816,6 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
bdgrab(bdev);
return 0;

-out_clr:
- loop_sysfs_exit(lo);
- lo->lo_thread = NULL;
- lo->lo_device = NULL;
- lo->lo_backing_file = NULL;
- lo->lo_flags = 0;
- set_capacity(lo->lo_disk, 0);
- invalidate_bdev(bdev);
- bd_set_size(bdev, 0);
- kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
- mapping_set_gfp_mask(mapping, lo->old_gfp_mask);
- lo->lo_state = Lo_unbound;
out_putf:
fput(file);
out:
@@ -1012,11 +891,6 @@ static int loop_clr_fd(struct loop_device *lo)

spin_lock_irq(&lo->lo_lock);
lo->lo_state = Lo_rundown;
- spin_unlock_irq(&lo->lo_lock);
-
- kthread_stop(lo->lo_thread);
-
- spin_lock_irq(&lo->lo_lock);
lo->lo_backing_file = NULL;
spin_unlock_irq(&lo->lo_lock);

@@ -1028,7 +902,6 @@ static int loop_clr_fd(struct loop_device *lo)
lo->lo_offset = 0;
lo->lo_sizelimit = 0;
lo->lo_encrypt_key_size = 0;
- lo->lo_thread = NULL;
memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE);
memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
memset(lo->lo_file_name, 0, LO_NAME_SIZE);
@@ -1601,6 +1474,105 @@ int loop_unregister_transfer(int number)
EXPORT_SYMBOL(loop_register_transfer);
EXPORT_SYMBOL(loop_unregister_transfer);

+static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
+ const struct blk_mq_queue_data *bd)
+{
+ struct loop_cmd *cmd = blk_mq_rq_to_pdu(bd->rq);
+
+ blk_mq_start_request(bd->rq);
+
+ if (cmd->rq->cmd_flags & REQ_WRITE) {
+ struct loop_device *lo = cmd->rq->q->queuedata;
+ bool need_sched = true;
+
+ spin_lock_irq(&lo->lo_lock);
+ if (lo->write_started)
+ need_sched = false;
+ else
+ lo->write_started = true;
+ list_add_tail(&cmd->list, &lo->write_cmd_head);
+ spin_unlock_irq(&lo->lo_lock);
+
+ if (need_sched)
+ queue_work(loop_wq, &lo->write_work);
+ } else {
+ queue_work(loop_wq, &cmd->read_work);
+ }
+
+ return BLK_MQ_RQ_QUEUE_OK;
+}
+
+static void loop_handle_cmd(struct loop_cmd *cmd)
+{
+ const bool write = cmd->rq->cmd_flags & REQ_WRITE;
+ struct loop_device *lo = cmd->rq->q->queuedata;
+ int ret = -EIO;
+
+ if (lo->lo_state != Lo_bound)
+ goto failed;
+
+ if (write && (lo->lo_flags & LO_FLAGS_READ_ONLY))
+ goto failed;
+
+ ret = do_req_filebacked(lo, cmd->rq);
+
+ failed:
+ if (ret)
+ cmd->rq->errors = -EIO;
+ blk_mq_complete_request(cmd->rq);
+}
+
+static void loop_queue_write_work(struct work_struct *work)
+{
+ struct loop_device *lo =
+ container_of(work, struct loop_device, write_work);
+ LIST_HEAD(cmd_list);
+
+ spin_lock_irq(&lo->lo_lock);
+ repeat:
+ list_splice_init(&lo->write_cmd_head, &cmd_list);
+ spin_unlock_irq(&lo->lo_lock);
+
+ while (!list_empty(&cmd_list)) {
+ struct loop_cmd *cmd = list_first_entry(&cmd_list,
+ struct loop_cmd, list);
+ list_del_init(&cmd->list);
+ loop_handle_cmd(cmd);
+ }
+
+ spin_lock_irq(&lo->lo_lock);
+ if (!list_empty(&lo->write_cmd_head))
+ goto repeat;
+ lo->write_started = false;
+ spin_unlock_irq(&lo->lo_lock);
+}
+
+static void loop_queue_read_work(struct work_struct *work)
+{
+ struct loop_cmd *cmd =
+ container_of(work, struct loop_cmd, read_work);
+
+ loop_handle_cmd(cmd);
+}
+
+static int loop_init_request(void *data, struct request *rq,
+ unsigned int hctx_idx, unsigned int request_idx,
+ unsigned int numa_node)
+{
+ struct loop_cmd *cmd = blk_mq_rq_to_pdu(rq);
+
+ cmd->rq = rq;
+ INIT_WORK(&cmd->read_work, loop_queue_read_work);
+
+ return 0;
+}
+
+static struct blk_mq_ops loop_mq_ops = {
+ .queue_rq = loop_queue_rq,
+ .map_queue = blk_mq_map_queue,
+ .init_request = loop_init_request,
+};
+
static int loop_add(struct loop_device **l, int i)
{
struct loop_device *lo;
@@ -1627,16 +1599,28 @@ static int loop_add(struct loop_device **l, int i)
i = err;

err = -ENOMEM;
- lo->lo_queue = blk_alloc_queue(GFP_KERNEL);
- if (!lo->lo_queue)
+ lo->tag_set.ops = &loop_mq_ops;
+ lo->tag_set.nr_hw_queues = 1;
+ lo->tag_set.queue_depth = 128;
+ lo->tag_set.numa_node = NUMA_NO_NODE;
+ lo->tag_set.cmd_size = sizeof(struct loop_cmd);
+ lo->tag_set.flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_SG_MERGE;
+ lo->tag_set.driver_data = lo;
+
+ err = blk_mq_alloc_tag_set(&lo->tag_set);
+ if (err)
goto out_free_idr;

- /*
- * set queue make_request_fn
- */
- blk_queue_make_request(lo->lo_queue, loop_make_request);
+ lo->lo_queue = blk_mq_init_queue(&lo->tag_set);
+ if (IS_ERR_OR_NULL(lo->lo_queue)) {
+ err = PTR_ERR(lo->lo_queue);
+ goto out_cleanup_tags;
+ }
lo->lo_queue->queuedata = lo;

+ INIT_LIST_HEAD(&lo->write_cmd_head);
+ INIT_WORK(&lo->write_work, loop_queue_write_work);
+
disk = lo->lo_disk = alloc_disk(1 << part_shift);
if (!disk)
goto out_free_queue;
@@ -1664,9 +1648,6 @@ static int loop_add(struct loop_device **l, int i)
disk->flags |= GENHD_FL_EXT_DEVT;
mutex_init(&lo->lo_ctl_mutex);
lo->lo_number = i;
- lo->lo_thread = NULL;
- init_waitqueue_head(&lo->lo_event);
- init_waitqueue_head(&lo->lo_req_wait);
spin_lock_init(&lo->lo_lock);
disk->major = LOOP_MAJOR;
disk->first_minor = i << part_shift;
@@ -1680,6 +1661,8 @@ static int loop_add(struct loop_device **l, int i)

out_free_queue:
blk_cleanup_queue(lo->lo_queue);
+out_cleanup_tags:
+ blk_mq_free_tag_set(&lo->tag_set);
out_free_idr:
idr_remove(&loop_index_idr, i);
out_free_dev:
@@ -1692,6 +1675,7 @@ static void loop_remove(struct loop_device *lo)
{
del_gendisk(lo->lo_disk);
blk_cleanup_queue(lo->lo_queue);
+ blk_mq_free_tag_set(&lo->tag_set);
put_disk(lo->lo_disk);
kfree(lo);
}
@@ -1875,6 +1859,13 @@ static int __init loop_init(void)
goto misc_out;
}

+ loop_wq = alloc_workqueue("kloopd",
+ WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0);
+ if (!loop_wq) {
+ err = -ENOMEM;
+ goto misc_out;
+ }
+
blk_register_region(MKDEV(LOOP_MAJOR, 0), range,
THIS_MODULE, loop_probe, NULL, NULL);

@@ -1912,6 +1903,8 @@ static void __exit loop_exit(void)
blk_unregister_region(MKDEV(LOOP_MAJOR, 0), range);
unregister_blkdev(LOOP_MAJOR, "loop");

+ destroy_workqueue(loop_wq);
+
misc_deregister(&loop_misc);
}

diff --git a/drivers/block/loop.h b/drivers/block/loop.h
index 90df5d6..e20cdbb 100644
--- a/drivers/block/loop.h
+++ b/drivers/block/loop.h
@@ -13,6 +13,7 @@
#include <linux/blkdev.h>
#include <linux/spinlock.h>
#include <linux/mutex.h>
+#include <linux/workqueue.h>
#include <uapi/linux/loop.h>

/* Possible states of device */
@@ -52,19 +53,23 @@ struct loop_device {
gfp_t old_gfp_mask;

spinlock_t lo_lock;
- struct bio_list lo_bio_list;
- unsigned int lo_bio_count;
+ struct list_head write_cmd_head;
+ struct work_struct write_work;
+ bool write_started;
int lo_state;
struct mutex lo_ctl_mutex;
- struct task_struct *lo_thread;
- wait_queue_head_t lo_event;
- /* wait queue for incoming requests */
- wait_queue_head_t lo_req_wait;

struct request_queue *lo_queue;
+ struct blk_mq_tag_set tag_set;
struct gendisk *lo_disk;
};

+struct loop_cmd {
+ struct work_struct read_work;
+ struct request *rq;
+ struct list_head list;
+};
+
/* Support for loadable transfer modules */
struct loop_func_table {
int number; /* filter type */
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 8aded9a..a855a69 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -212,6 +212,8 @@ void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async);
void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
void blk_mq_tag_busy_iter(struct blk_mq_hw_ctx *hctx, busy_iter_fn *fn,
void *priv);
+void blk_mq_freeze_queue(struct request_queue *q);
+void blk_mq_unfreeze_queue(struct request_queue *q);

/*
* Driver command data is immediately after the request. So subtract request
diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean
index 1bca180..55c96cb 100644
--- a/scripts/Makefile.clean
+++ b/scripts/Makefile.clean
@@ -42,19 +42,19 @@ __clean-files := $(extra-y) $(extra-m) $(extra-) \

__clean-files := $(filter-out $(no-clean-files), $(__clean-files))

-# as clean-files is given relative to the current directory, this adds
-# a $(obj) prefix, except for absolute paths
+# clean-files is given relative to the current directory, unless it
+# starts with $(objtree)/ (which means "./", so do not add "./" unless
+# you want to delete a file from the toplevel object directory).

__clean-files := $(wildcard \
- $(addprefix $(obj)/, $(filter-out /%, $(__clean-files))) \
- $(filter /%, $(__clean-files)))
+ $(addprefix $(obj)/, $(filter-out $(objtree)/%, $(__clean-files))) \
+ $(filter $(objtree)/%, $(__clean-files)))

-# as clean-dirs is given relative to the current directory, this adds
-# a $(obj) prefix, except for absolute paths
+# same as clean-files

__clean-dirs := $(wildcard \
- $(addprefix $(obj)/, $(filter-out /%, $(clean-dirs))) \
- $(filter /%, $(clean-dirs)))
+ $(addprefix $(obj)/, $(filter-out $(objtree)/%, $(clean-dirs))) \
+ $(filter $(objtree)/%, $(clean-dirs)))

# ==========================================================================

@@ -71,9 +71,6 @@ endif
ifneq ($(strip $(__clean-dirs)),)
+$(call cmd,cleandir)
endif
-ifneq ($(strip $(clean-rule)),)
- +$(clean-rule)
-endif
@:


diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 5972624..7a60d1a 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -217,9 +217,22 @@ else
fi
maintainer="$name <$email>"

+# Try to determine distribution
+if [ -e $(which lsb_release) ]; then
+ codename=$(lsb_release --codename --short)
+ if [ "$codename" != "" ]; then
+ distribution=$codename
+ else
+ distribution="UNRELEASED"
+ echo "WARNING: The distribution could NOT be determined!"
+ fi
+else
+ echo "HINT: Install lsb_release binary, this helps to identify your distribution!"
+fi
+
# Generate a simple changelog template
cat <<EOF > debian/changelog
-linux-upstream ($packageversion) unstable; urgency=low
+linux-upstream ($packageversion) $distribution; urgency=low

* Custom built Linux kernel.

@@ -233,10 +246,10 @@ This is a packacked upstream version of the Linux kernel.
The sources may be found at most Linux ftp sites, including:
ftp://ftp.kernel.org/pub/linux/kernel

-Copyright: 1991 - 2009 Linus Torvalds and others.
+Copyright: 1991 - 2014 Linus Torvalds and others.

The git repository for mainline kernel development is at:
-git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

Attachment: config-3.19.0-rc2-next20141231-2-iniza-small
Description: Binary data

root@fambox:~# fio --name=randread --rw=randread --bs=4k --ioengine=libaio --iodepth=64 --direct=1 --numjobs=1 --size=1G
randread: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio 1.59
Starting 1 process
Jobs: 1 (f=1): [r] [99.8% done] [7172K/0K /s] [1751 /0 iops] [eta 00m:03s]
randread: (groupid=0, jobs=1): err= 0: pid=2539
read : io=1024.0MB, bw=678578 B/s, iops=165 , runt=1582340msec
slat (usec): min=6 , max=652342 , avg=15.55, stdev=1702.87
clat (usec): min=679 , max=1278.9K, avg=386219.43, stdev=231188.60
lat (usec): min=690 , max=1278.9K, avg=386235.21, stdev=231192.44
bw (KB/s) : min= 29, max= 9593, per=99.73%, avg=660.19, stdev=813.90
cpu : usr=0.08%, sys=99.76%, ctx=6335, majf=0, minf=68
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued r/w/d: total=262144/0/0, short=0/0/0
lat (usec): 750=0.08%, 1000=0.51%
lat (msec): 2=0.06%, 4=0.02%, 10=0.51%, 20=1.83%, 50=7.45%
lat (msec): 100=10.34%, 250=13.27%, 500=19.16%, 750=46.64%, 1000=0.14%
lat (msec): 2000=0.01%

Run status group 0 (all jobs):
READ: io=1024.0MB, aggrb=662KB/s, minb=678KB/s, maxb=678KB/s, mint=1582340msec, maxt=1582340msec

Disk stats (read/write):
loop0: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00%
root@fambox:~#
root@fambox:~# cat /proc/version
Linux version 3.19.0-rc2-next20141231-1-iniza-small (sedat.dilek@xxxxxxxxx@fambox) (gcc version 4.9.2 (Ubuntu 4.9.2-0ubuntu1~12.04) ) #1 SMP Wed Dec 31 21:28:49 CET 2014


-dileks // 31-DEZ-2014

root@fambox:~# fio --name=randread --rw=randread --bs=4k --ioengine=libaio --iodepth=64 --direct=1 --numjobs=1 --size=1G
randread: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio 1.59
Starting 1 process
Jobs: 1 (f=1): [r] [98.6% done] [20742K/0K /s] [5064 /0 iops] [eta 00m:07s]
randread: (groupid=0, jobs=1): err= 0: pid=31823
read : io=1024.0MB, bw=2063.4KB/s, iops=515 , runt=508182msec
slat (usec): min=9 , max=238 , avg=15.32, stdev= 3.57
clat (usec): min=3 , max=5198.5K, avg=124050.36, stdev=251834.37
lat (usec): min=16 , max=5198.6K, avg=124065.92, stdev=251835.77
bw (KB/s) : min= 667, max=103842, per=99.29%, avg=2048.36, stdev=3861.47
cpu : usr=0.23%, sys=99.69%, ctx=2185, majf=0, minf=69
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued r/w/d: total=262144/0/0, short=0/0/0
lat (usec): 4=0.01%, 10=28.56%, 20=18.97%, 50=17.88%, 100=4.63%
lat (usec): 250=2.02%, 500=0.17%, 750=0.01%, 1000=0.01%
lat (msec): 2=4.97%, 4=0.01%, 10=0.01%, 20=0.03%, 50=0.13%
lat (msec): 100=0.29%, 250=1.31%, 500=4.89%, 750=14.65%, 1000=0.90%
lat (msec): 2000=0.51%, >=2000=0.06%

Run status group 0 (all jobs):
READ: io=1024.0MB, aggrb=2063KB/s, minb=2112KB/s, maxb=2112KB/s, mint=508182msec, maxt=508182msec

Disk stats (read/write):
loop0: ios=260831/137, merge=0/5, ticks=32479636/918584, in_queue=33408644, util=100.00%
root@fambox:~#
root@fambox:~# cat /proc/version
Linux version 3.19.0-rc2-next20141231-2-iniza-small (sedat.dilek@xxxxxxxxx@fambox) (gcc version 4.9.2 (Ubuntu 4.9.2-0ubuntu1~12.04) ) #1 SMP Wed Dec 31 21:02:21 CET 2014


-dileks // 31-DEC-2014