[Crash-utility] 答复: [PATCH] x86_64: vtop supports 1G huge pages

HAGIO KAZUHITO(萩尾 一仁) k-hagio-ab at nec.com
Wed Jun 10 14:15:49 UTC 2020


-----Original Message-----
> > > Crash utility currently does not supporting virtual to physical
> > > address translation for 1G huge pages on x86_64, This patch tries to
> > > address this issue by providing address translation support for huge
> > > pages in 'vtop' command.
> >
> > Good catch!  I think it would be better to add the same behavior also to
> > x86_64_kvtop().  Could you do it?
> >
> > Thanks,
> > Kazu
> >
> 
> Yes, I can. But how should I test?

You can get the kernel virtual address corresponding to the physical address
of a user virtual address with ptov command, and then do vtop again the kernel
virtual address.  For example:

crash.1Ghuge> vtop 7f4780000000
VIRTUAL     PHYSICAL        
7f4780000000  1a00000000      

   PGD: 2fa32e47f0 => 8000002fb2f30067
   PUD: 2fb2f308f0 => 8000001a000008e7
  PAGE: 1a00000000  (1GB)
...
crash.1Ghuge> ptov 1a00000000
VIRTUAL           PHYSICAL        
ffff8fe580000000  1a00000000      
crash.1Ghuge> vtop ffff8fe580000000
VIRTUAL           PHYSICAL        
ffff8fe580000000  1a00000000      

PGD DIRECTORY: ffffffff92c0a000
PAGE DIRECTORY: 18b2001067
   PUD: 18b2001cb0 => 8000001a000001e3
   PMD: 1a00000000 => 706050403020100  <<-- should print "(1GB)" and PTE info

      PAGE         PHYSICAL      MAPPING       INDEX CNT FLAGS
fffffa1aa8000000 1a00000000 ffff8ffb525d0cb9        0  1 57ffffc001000c uptodate,dirty,head

Thanks,
Kazu




More information about the Crash-utility mailing list