Por que não consigo montar o disco agora com memória limitada?

1

Hoje estou com problemas no meu laptop rodando o Fedora 22 com um disco rígido externo USB 3 da Seagate. Liguei a unidade e ela não montaria, em vez disso, mostrava low_memory erros em dmesg . Reinicialização fixa inicialmente, mas quando mais tarde eu tentei ligar o disco não montaria novamente - este o bit relevante de 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

e também a quantidade de memória / troca no momento ( free -m ):

              total        used        free      shared  buff/cache   available
Mem:           7584        1237         493         196        5852        6029
Swap:             0           0           0

Como parecia ser por causa da memória limitada, eu limpei o cache de memória ( echo 3 | sudo tee /proc/sys/vm/drop_caches ) e tentei novamente, e funcionou :). Aqui está o 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

E o free -m :

              total        used        free      shared  buff/cache   available
Mem:           7584        1785        5186         228         612        5472
Swap:             0           0           0

Isso parece estranho, já que eu tenho a configuração há anos e, anteriormente, não tive problemas - as únicas mudanças recentes que consigo pensar em mim são o preenchimento das unidades enquanto estou tentando reinstalar outra máquina:

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

e talvez o sistema seja atualizado. Então por favor:

  • Por que isso aconteceu (e como posso corrigi-lo)?
  • Teria alguma ajuda de troca com problema?
  • O cache de memória não deve ser limpo de qualquer maneira, se necessário ( linuxatemyram e tudo isso)?
por Wilf 19.03.2016 / 22:09

1 resposta

1

Eu acho que você se deparou com esta questão no driver uas. Ele deve ser corrigido em 4.6-rc1 conforme commit 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.
    
por 03.04.2016 / 20:30