今天,我在运行带有外部 USB 3 Seagate 硬盘的 Fedora 22 的笔记本电脑时遇到问题。我插入驱动器,但它无法安装,而是low_memory
在dmesg
.重新启动最初修复了它,但是当后来我尝试插入磁盘时,它不会再次安装 - 这是相关的部分dmesg
:
usb 4-4: new SuperSpeed USB device number 6 using xhci_hcd
[ 2354.749660] usb 4-4: New USB device found, idVendor=0bc2, idProduct=ab24
[ 2354.749680] usb 4-4: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 2354.749684] usb 4-4: Product: BUP Slim BK
[ 2354.749686] usb 4-4: Manufacturer: Seagate
[ 2354.749688] usb 4-4: SerialNumber: NA7KR1X0
[ 2354.752380] scsi host11: uas
[ 2354.752387] kworker/0:2: page allocation failure: order:7, mode:0x208c020
[ 2354.752390] CPU: 0 PID: 8715 Comm: kworker/0:2 Tainted: P OE 4.4.4-200.fc22.x86_64 #1
[ 2354.752392] Hardware name: LENOVO 62743QG/62743QG, BIOS H1ET84WW(1.22) 11/26/2013
[ 2354.752398] Workqueue: usb_hub_wq hub_event
[ 2354.752401] 0000000000000286 000000001bd47e87 ffff8801219fb4d0 ffffffff813b515e
[ 2354.752404] 000000000208c020 0000000000000000 ffff8801219fb560 ffffffff811b2fea
[ 2354.752406] 0000000000000007 000000008179fbae ffff88021e5e8e00 ffffffffffffff80
[ 2354.752409] Call Trace:
[ 2354.752415] [<ffffffff813b515e>] dump_stack+0x63/0x85
[ 2354.752419] [<ffffffff811b2fea>] warn_alloc_failed+0xfa/0x160
[ 2354.752422] [<ffffffff811b6ec1>] __alloc_pages_nodemask+0x361/0xbc0
[ 2354.752427] [<ffffffff81202a1c>] alloc_pages_current+0x8c/0x110
[ 2354.752430] [<ffffffff811b51b9>] alloc_kmem_pages+0x19/0x90
[ 2354.752434] [<ffffffff811d2f4e>] kmalloc_order_trace+0x2e/0xe0
[ 2354.752438] [<ffffffff8120e722>] __kmalloc+0x232/0x260
[ 2354.752442] [<ffffffff8138989d>] init_tag_map+0x3d/0xc0
[ 2354.752445] [<ffffffff81389965>] __blk_queue_init_tags+0x45/0x80
[ 2354.752448] [<ffffffff813899b4>] blk_init_tags+0x14/0x20
[ 2354.752452] [<ffffffff81520b40>] scsi_add_host_with_dma+0x80/0x300
[ 2354.752457] [<ffffffffa00c1423>] uas_probe+0x3e3/0x520 [uas]
[ 2354.752461] [<ffffffff8158acad>] usb_probe_interface+0x1bd/0x300
[ 2354.752465] [<ffffffff814eeeb2>] driver_probe_device+0x222/0x490
[ 2354.752467] [<ffffffff814ef221>] __device_attach_driver+0x71/0xa0
[ 2354.752470] [<ffffffff814ef1b0>] ? __driver_attach+0x90/0x90
[ 2354.752472] [<ffffffff814eca67>] bus_for_each_drv+0x67/0xb0
[ 2354.752474] [<ffffffff814eeb8c>] __device_attach+0xdc/0x170
[ 2354.752477] [<ffffffff814ef293>] device_initial_probe+0x13/0x20
[ 2354.752479] [<ffffffff814ede42>] bus_probe_device+0x92/0xa0
[ 2354.752481] [<ffffffff814eb9fb>] device_add+0x40b/0x680
[ 2354.752484] [<ffffffff8157a7b9>] ? usb_enable_lpm+0x89/0x90
[ 2354.752487] [<ffffffff81588b71>] usb_set_configuration+0x511/0x8e0
[ 2354.752490] [<ffffffff815934be>] generic_probe+0x2e/0x80
[ 2354.752492] [<ffffffff8158aab2>] usb_probe_device+0x32/0x70
[ 2354.752495] [<ffffffff814eeeb2>] driver_probe_device+0x222/0x490
[ 2354.752497] [<ffffffff814ef221>] __device_attach_driver+0x71/0xa0
[ 2354.752499] [<ffffffff814ef1b0>] ? __driver_attach+0x90/0x90
[ 2354.752501] [<ffffffff814eca67>] bus_for_each_drv+0x67/0xb0
[ 2354.752503] [<ffffffff814eeb8c>] __device_attach+0xdc/0x170
[ 2354.752506] [<ffffffff814ef293>] device_initial_probe+0x13/0x20
[ 2354.752508] [<ffffffff814ede42>] bus_probe_device+0x92/0xa0
[ 2354.752509] [<ffffffff814eb9fb>] device_add+0x40b/0x680
[ 2354.752513] [<ffffffff814c0400>] ? add_device_randomness+0x50/0x140
[ 2354.752516] [<ffffffff8157e047>] usb_new_device+0x277/0x4b0
[ 2354.752519] [<ffffffff8158028d>] hub_event+0x103d/0x1590
[ 2354.752524] [<ffffffff810bc596>] process_one_work+0x156/0x430
[ 2354.752527] [<ffffffff810bc8be>] worker_thread+0x4e/0x450
[ 2354.752531] [<ffffffff8179b955>] ? __schedule+0x3a5/0xa00
[ 2354.752533] [<ffffffff810bc870>] ? process_one_work+0x430/0x430
[ 2354.752536] [<ffffffff810bc870>] ? process_one_work+0x430/0x430
[ 2354.752538] [<ffffffff810c2648>] kthread+0xd8/0xf0
[ 2354.752540] [<ffffffff810c2570>] ? kthread_worker_fn+0x160/0x160
[ 2354.752543] [<ffffffff817a048f>] ret_from_fork+0x3f/0x70
[ 2354.752545] [<ffffffff810c2570>] ? kthread_worker_fn+0x160/0x160
[ 2354.752564] Mem-Info:
[ 2354.752571] active_anon:316599 inactive_anon:48172 isolated_anon:0
active_file:647763 inactive_file:660760 isolated_file:0
unevictable:0 dirty:3065 writeback:0 unstable:0
slab_reclaimable:99971 slab_unreclaimable:20297
mapped:57919 shmem:49646 pagetables:9709 bounce:0
free:118581 free_pcp:639 free_cma:0
[ 2354.752576] Node 0 DMA free:15884kB min:20kB low:24kB high:28kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15984kB managed:15900kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:16kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
[ 2354.752585] lowmem_reserve[]: 0 3109 7566 7566
[ 2354.752602] Node 0 DMA32 free:270468kB min:4540kB low:5672kB high:6808kB active_anon:503680kB inactive_anon:79744kB active_file:1043728kB inactive_file:1125396kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:3266876kB managed:3187136kB mlocked:0kB dirty:4684kB writeback:0kB mapped:96256kB shmem:81308kB slab_reclaimable:97220kB slab_unreclaimable:27128kB kernel_stack:2704kB pagetables:16068kB unstable:0kB bounce:0kB free_pcp:1456kB local_pcp:144kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[ 2354.752609] lowmem_reserve[]: 0 0 4456 4456
[ 2354.752612] Node 0 Normal free:187972kB min:6504kB low:8128kB high:9756kB active_anon:762716kB inactive_anon:112944kB active_file:1547324kB inactive_file:1517644kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:4691968kB managed:4563068kB mlocked:0kB dirty:7576kB writeback:0kB mapped:135420kB shmem:117276kB slab_reclaimable:302664kB slab_unreclaimable:54044kB kernel_stack:5136kB pagetables:22768kB unstable:0kB bounce:0kB free_pcp:1100kB local_pcp:236kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[ 2354.752616] lowmem_reserve[]: 0 0 0 0
[ 2354.752619] Node 0 DMA: 1*4kB (U) 1*8kB (U) 2*16kB (U) 1*32kB (U) 1*64kB (U) 1*128kB (U) 1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (M) 3*4096kB (M) = 15884kB
[ 2354.752643] Node 0 DMA32: 6*4kB (UME) 8*8kB (UME) 11101*16kB (UME) 2803*32kB (UME) 46*64kB (ME) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 270344kB
[ 2354.752652] Node 0 Normal: 2*4kB (UM) 2*8kB (UM) 8980*16kB (ME) 1326*32kB (UME) 26*64kB (M) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 187800kB
[ 2354.752661] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[ 2354.752663] 1358227 total pagecache pages
[ 2354.752664] 0 pages in swap cache
[ 2354.752665] Swap cache stats: add 0, delete 0, find 0/0
[ 2354.752666] Free swap = 0kB
[ 2354.752674] Total swap = 0kB
[ 2354.752675] 1993707 pages RAM
[ 2354.752676] 0 pages HighMem/MovableOnly
[ 2354.752677] 52181 pages reserved
[ 2354.752678] 0 pages cma reserved
[ 2354.752679] 0 pages hwpoisoned
[ 2354.753318] uas: probe of 4-4:1.0 failed with error -12
以及当时的内存/交换空间量 ( free -m
):
total used free shared buff/cache available
Mem: 7584 1237 493 196 5852 6029
Swap: 0 0 0
由于似乎是因为内存有限,所以我清除了内存缓存(echo 3 | sudo tee /proc/sys/vm/drop_caches
)并再次尝试,它成功了:)。这里是dmesg
:
[ 2714.892041] tee (14048): drop_caches: 3
[ 2724.745378] usb 4-4: USB disconnect, device number 6
[ 2726.561479] usb 4-2: new SuperSpeed USB device number 7 using xhci_hcd
[ 2726.573070] usb 4-2: New USB device found, idVendor=0bc2, idProduct=ab24
[ 2726.573075] usb 4-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 2726.573077] usb 4-2: Product: BUP Slim BK
[ 2726.573079] usb 4-2: Manufacturer: Seagate
[ 2726.573081] usb 4-2: SerialNumber: NA7KR1X0
[ 2726.575116] scsi host12: uas
[ 2726.576138] scsi 12:0:0:0: Direct-Access Seagate BUP Slim BK 0302 PQ: 0 ANSI: 6
[ 2726.576923] sd 12:0:0:0: Attached scsi generic sg3 type 0
[ 2726.576926] sd 12:0:0:0: [sdc] Spinning up disk...
[ 2727.577320] ...ready
[ 2729.581063] sd 12:0:0:0: [sdc] 3907029167 512-byte logical blocks: (2.00 TB/1.82 TiB)
[ 2729.581070] sd 12:0:0:0: [sdc] 2048-byte physical blocks
[ 2729.828378] sd 12:0:0:0: [sdc] Write Protect is off
[ 2729.828387] sd 12:0:0:0: [sdc] Mode Sense: 4f 00 00 00
[ 2729.828631] sd 12:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2729.835161] sdc: sdc1 sdc2 sdc3
[ 2729.836456] sd 12:0:0:0: [sdc] Attached SCSI disk
还有free -m
:
total used free shared buff/cache available
Mem: 7584 1785 5186 228 612 5472
Swap: 0 0 0
这看起来很奇怪,因为我已经进行了多年的设置并且以前没有任何问题 - 我能想到的最近唯一的变化是我在尝试重新安装另一台机器时填充驱动器:
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 59G 49G 7.2G 88% /
/dev/sda7 71G 70G 1.2G 99% /media/Music
/dev/sda8 112G 97G 16G 87% /media/Storage
/dev/sda5 111G 84G 21G 81% /home
/dev/sdc1 448G 434G 14G 97% /run/media/wilf/Seagate Backup Plus Drive
/dev/sdc2 917G 867G 3.3G 100% /run/media/wilf/Ext1
/dev/sdc3 477G 428G 25G 95% /run/media/wilf/Ext2
也许系统正在更新。所以,请:
- 为什么会发生这种情况(以及如何解决它)?
- 进行一些交换有助于解决问题吗?
- 如果需要的话,内存缓存不应该自行清除(linuxatemyram以及所有这些)?
答案1
我猜你遇到了这个问题在无人机驱动程序中。它应该按照 4.6-rc1 进行修复提交 55ff8cfb:
The uas driver can never queue more then MAX_CMNDS (- 1) tags and tags
are shared between luns, so there is no need to claim that we can_queue
some random large number.
Not claiming that we can_queue 65536 commands, fixes the uas driver
failing to initialize while allocating the tag map with a "Page allocation
failure (order 7)" error on systems which have been running for a while
and thus have fragmented memory.