On Thu, Mar 31, 2022 at 6:29 AM Commit Bot <[email protected]> wrote:
> From: Waldemar Kozaczuk <[email protected]> > Committer: Waldemar Kozaczuk <[email protected]> > Branch: master > > loader.py: add linear_mmap command > > Similarly to the patch that adds new pseudo file > /sys/osv/memory/linear_maps, > this one adds new loader.py command that can be used with gdb to display > same information: > > (gdb) osv linear_mmap > vaddr paddr size perm memattr name > 8000000 8000000 10000 rwxp dev gic_dist > 8010000 8010000 10000 rwxp dev gic_cpu > 9000000 9000000 1000 rwxp dev pl011 > 9010000 9010000 1000 rwxp dev pl031 > 10000000 10000000 2eff0000 rwxp dev pci_mem > 3eff0000 3eff0000 10000 rwxp dev pci_io > 40000000 40000000 6d3000 rwxp normal kernel > 4010000000 4010000000 10000000 rwxp dev pci_cfg > ffff80000a000000 a000000 200 rwxp normal virtio_mmio_cfg > ffff80000a000200 a000200 200 rwxp normal virtio_mmio_cfg > ffff80000a000400 a000400 200 rwxp normal virtio_mmio_cfg > ffff80000a000600 a000600 200 rwxp normal virtio_mmio_cfg > ffff80000a000800 a000800 200 rwxp normal virtio_mmio_cfg > ffff80000a000a00 a000a00 200 rwxp normal virtio_mmio_cfg > ffff80000a000c00 a000c00 200 rwxp normal virtio_mmio_cfg > ffff80000a000e00 a000e00 200 rwxp normal virtio_mmio_cfg > ffff8000406d3000 406d3000 7f92d000 rwxp normal main > ffff9000406d3000 406d3000 7f92d000 rwxp normal page > ffffa000406d3000 406d3000 7f92d000 rwxp normal mempool > > Signed-off-by: Waldemar Kozaczuk <[email protected]> > > --- > diff --git a/scripts/loader.py b/scripts/loader.py > --- a/scripts/loader.py > +++ b/scripts/loader.py > @@ -1643,11 +1643,40 @@ def invoke(self, args, from_tty): > return > gdb.write('%s\n'%target) > > +class osv_linear_mmap(gdb.Command): > + def __init__(self): > + gdb.Command.__init__(self, 'osv linear_mmap', > + gdb.COMMAND_USER, gdb.COMPLETE_NONE) > + def invoke(self, arg, for_tty): > + l = str(gdb.lookup_global_symbol('mmu::linear_vma_set').value()) > + linear_vmas = re.findall('\[([0-9]+)\] = (0x[0-9a-zA-Z]+)', l) > + > + gdb.write("%16s %16s %8s %4s %7s %s\n" % ("vaddr", "paddr", > "size", "perm", "memattr", "name")) > + > + char_ptr = gdb.lookup_type('char').pointer() > + for desc in linear_vmas: > + addr = desc[1] > + vma = gdb.parse_and_eval('(struct mmu::linear_vma *)' + addr) > + > + vaddr = vma['_virt_addr'] > + paddr = vma['_phys_addr'] > + size = vma['_size'] > + if vma['_mem_attr'] == 0: > + memattr = 'normal' > + else: > + memattr = 'dev' > + name = vma['_name'].cast(char_ptr).string() > + > + # dispatch time ns ticks callout function > Wrongly-copied comment? :-) > + gdb.write("%16x %16x %8x rwxp %7s %s\n" % > + (vaddr, paddr, size, memattr, name)) > + > osv() > osv_heap() > osv_memory() > osv_waiters() > osv_mmap() > +osv_linear_mmap() > osv_vma_find() > osv_zfs() > osv_syms() > > -- > You received this message because you are subscribed to the Google Groups > "OSv Development" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/osv-dev/0000000000002f6a2605db7b46c4%40google.com > . > -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/CANEVyjs5jZS%2BE%3DiXTEVWE-YqS3aFgAyb6EQ1E1BFYF1GaCzN_A%40mail.gmail.com.
