오늘 저는 외장 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.