On Mon, Oct 20, 2025 at 06:01:00PM +0200, Mikhail Zaslonko wrote:
> >> @@ -943,15 +943,15 @@ s390x_kvtop(struct task_context *tc, ulong vaddr, 
> >> physaddr_t *paddr, int verbose
> >>  
> >>    if (!IS_KVADDR(vaddr)){
> >>            *paddr = 0;
> >>            return FALSE;
> >>    }
> >>  
> >> -  if (!IS_VMALLOC_ADDR(vaddr)) {
> >> -         *paddr = VTOP(vaddr);
> >> -         return TRUE;
> >> +  if (!verbose && !IS_VMALLOC_ADDR(vaddr)) {
> >> +          *paddr = VTOP(vaddr);
> >> +          return TRUE;
> > 
> > Few other architectures do it like this:
> > 
> >     if (!vt->vmalloc_start) {                                               
> >             *paddr = VTOP(kvaddr);                                          
> >             return TRUE;                                                    
> >     }                                                                       
> >     if (!IS_VMALLOC_ADDR(kvaddr)) {                                         
> >             *paddr = VTOP(kvaddr);                                          
> >             if (!verbose)                                                   
> >                     return TRUE;                                            
> >     }                                                                       
> > 
> > Would it work for s390x?
> 
> It would, but does it make sense updating *paddr value for non-verbose case 
> prior to
> calling s390x_vtop() where we set it back to zero at the very start (see 
> below).

It is getting ugly this way, indeed.

> Do you think we should just try keeping the code similar to other 
> architectures?

No, I am just afraid of missing the reason why some other archs do it (not all).
So it looks like you approach is fine.

>   /* lookup virtual address in page tables */
>   int s390x_vtop(ulong table, ulong vaddr, physaddr_t *phys_addr, int verbose)
>   {
>           ulong entry, paddr;
>           int level, len;
>   
>           if (verbose)
>                   fprintf(fp, "PAGE DIRECTORY: %016lx\n", table);
>   
>           *phys_addr = 0;
> 

Thanks!
--
Crash-utility mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to