qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 04/16] fuzz: Add DMA support to the generic-fuzzer


From: Alexander Bulekov
Subject: Re: [PATCH v3 04/16] fuzz: Add DMA support to the generic-fuzzer
Date: Thu, 8 Oct 2020 09:26:11 -0400

On 201008 0943, Paolo Bonzini wrote:
> On 21/09/20 04:24, Alexander Bulekov wrote:
> > +    if (qtest_log_enabled) {
> > +        /*
> > +         * With QTEST_LOG, use a normal, slow QTest memwrite. Prefix the 
> > log
> > +         * that will be written by qtest.c with a DMA tag, so we can 
> > reorder
> > +         * the resulting QTest trace so the DMA fills precede the last 
> > PIO/MMIO
> > +         * command.
> > +         */
> > +        fprintf(stderr, "[DMA] ");
> > +        fflush(stderr);
> > +        qtest_memwrite(qts_global, ar.addr, buf, ar.size);
> > +    } else {
> > +       /*
> > +        * Populate the region using address_space_write_rom to avoid 
> > writing to
> > +        * any IO MemoryRegions
> > +        */
> > +        address_space_write_rom(first_cpu->as, ar.addr, 
> > MEMTXATTRS_UNSPECIFIED,
> > +                buf, ar.size);
> > +    }
> 
> I wonder if you should just copy address_space_write_rom to your own
> code.  This way you can log the write just like qtest_memwrite would,
> while skipping memwrites that would access IO regions.
> 
> Paolo

I took a quick look, and I think this should be possible, though I might
also need to carry over memory_access_size and invalidate_and_set_dirty.
That would certainly make things better for building reproducers, since
I have seen cases where bugs were not reproducible with QTEST_LOG=1,
because we were not using address_space_write_rom. I'll give it a shot!
Thanks



reply via email to

[Prev in Thread] Current Thread [Next in Thread]