On Wed, Jan 18, 2017 at 10:00 PM, Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx> wrote: > On (01/18/17 20:36), Dan Streetman wrote: >> On Wed, Jan 18, 2017 at 8:17 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote: >> > On Wed 18-01-17 10:39:48, Sergey Senozhatsky wrote: >> >> Cc Dan >> >> >> >> On (01/17/17 12:22), Andrew Morton wrote: >> >> > > https://bugzilla.kernel.org/show_bug.cgi?id=192571 >> >> > > >> >> > > --- Comment #1 from Gluzskiy Alexandr <sss123next@xxxxxxx> --- >> >> > > [199961.576604] ------------[ cut here ]------------ >> >> > > [199961.577830] kernel BUG at mm/zswap.c:1108! >> >> >> >> zswap didn't manage to decompress the page: >> >> >> >> static int zswap_frontswap_load(unsigned type, pgoff_t offset, >> >> struct page *page) >> >> { >> >> ... >> >> dst = kmap_atomic(page); >> >> tfm = *get_cpu_ptr(entry->pool->tfm); >> >> ret = crypto_comp_decompress(tfm, src, entry->length, dst, &dlen); >> >> put_cpu_ptr(entry->pool->tfm); >> >> kunmap_atomic(dst); >> >> zpool_unmap_handle(entry->pool->zpool, entry->handle); >> >> BUG_ON(ret); >> >> ^^^^^^^^^^^ >> > >> > Ugh, why do we even do that? This is not the way how to handle error >> > situations. AFAIU propagating the error out wouldn't be a big deal >> > because we would just fallback to regular swap, right? >> >> yeah this function definitely should never bug; it's just a callback >> from the zpool to try to write a page back to the swapcache so the >> zpool can free a page. It's definitely ok for it to return an error. >> > > good. Dan, Seth, care to send the patch? damn, i misread the trace. I need to stop reading bug emails late at night. I just sent a patch to change the BUG calls in zswap_writeback_entry() as those are totally recoverable, but the BUG here is from zswap_frontswap_load(), and a failure there isn't recoverable. Unfortunately, if we accepted the page, but now can't recover it, it's gone and returning error from zswap_frontswap_load() will just cause page_io.c to go read the swap disk; and what's on there is not the page we're looking for, it's undefined as we didn't actually ever write the swap page to disk (unless frontswap_writethrough is enabled). Ill have to look at this again in the morning. > and one more thing... can you take a look at [1]? yeah, i've been meaning to get to that as well, will send something tomorrow. > > [1] https://marc.info/?l=linux-mm&m=147031191906154&w=4 > > -ss > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>