[so2] [Tema 3] Problema write crc

Catalin Neagu neagu.catalin.f at gmail.com
Wed May 1 20:50:25 EEST 2019


Multumesc, asta era problema.

Catalin

On Wed, 1 May 2019 at 16:40, Razvan Deaconescu via so2 <
so2 at cursuri.cs.pub.ro> wrote:

> Catalin Neagu via so2 <so2 at cursuri.cs.pub.ro> writes:
> > Salut,
> >
> > Am ajuns la partea la care trebuie sa scriu in sectiunea de CRC-uri. La
> un
> > moment dat, incerc sa imi fac un bio special pentru a scrie un CRC pentru
> > un sector, "crc_bio = bio_alloc(GFP_NOIO, 1)", dar ajung la un kernel
> bug:
> >
> > "BUG: sleeping function called from invalid context at mm/mempool.c:375
> > in_atomic(): 1, irqs_disabled(): 0, pid: 238, name: run-test
> > INFO: lockdep is turned off.
> > CPU: 0 PID: 238 Comm: run-test Tainted: G           O      4.19.0+ #1
> > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
> 1.10.2-1ubuntu1
> > 04/01/2014
> > Call Trace:
> >  dump_stack+0x66/0x96
> >  ___might_sleep+0x155/0x250
> >  __might_sleep+0x32/0x90
> >  mempool_alloc+0x89/0x140
> >  bio_alloc_bioset+0x16d/0x300
> >  ? vprintk_func+0x38/0xc0
> >  ? kmap_atomic_prot+0x36/0xc0
> >  ssr_make_request+0x29b/0x6a6 [ssr]
> >  ? wait_woken+0xa0/0xa0
> >  generic_make_request+0x24e/0x450
> > ..."
> >
> > Gresesc ceva cand aloc bio-ul? Am incercat si cu GFP_NOIO | GFP_ATOMIC si
> > nu rezolva nimic... Poate nu am inteles prea bine cum sa fac partea de
> > scriere a crc-urilor. Daca a mai avut cineva problema sau daca cumva
> > gresesc abordarea, puteti sa-mi dati un hint, va rog?
>
> ssr_make_request rulează în context întrerupere/botom-half. Cel mai bine
> este ca tratarea bio-urilor, incluzând alocarea și așteptarea lor să o
> faceți într-un work, așa cum e precizat și în enunț:
> ---
> O singură funcție de prelucrare a cererilor pentru dispozitive de tip
> bloc poate fi activă la un moment dat în cadrul unei stive de apeluri
> (mai multe detalii aici). Va trebui să submiteți cererile pentru
> dispozitivele fizice dintr-un kernel thread; recomandăm folosirea
> workqueues.
> ---
>
> Răzvan
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20190501/12a2ba93/attachment.html>


More information about the so2 mailing list