All of lore.kernel.org
 help / color / mirror / Atom feed
* ia64 linux question
@ 2012-11-14 10:11 ratheesh kannoth
  2012-11-14 17:22 ` Anatoliy Sivov
  0 siblings, 1 reply; 2+ messages in thread
From: ratheesh kannoth @ 2012-11-14 10:11 UTC (permalink / raw)
  To: linux-newbie, e1000-devel

Hi,

I am running  2.6.29.1 on ia-64 hardware.


when i run  below code in a module

void *ptr =  kmalloc( 10 ,GFP_KERNEL )

i got a valid ptr ( ptr != NULL ) ..but i saw that

ptr == vitr_to_phy(ptr ) == virt_to_bus(ptr )

1. why   the physical and vitrual address  are same ?
2. is this sthing that we can change in kernel config during kernel
compilation ?

-Ratheesh
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: ia64 linux question
  2012-11-14 10:11 ia64 linux question ratheesh kannoth
@ 2012-11-14 17:22 ` Anatoliy Sivov
  0 siblings, 0 replies; 2+ messages in thread
From: Anatoliy Sivov @ 2012-11-14 17:22 UTC (permalink / raw)
  To: linux-newbie, e1000-devel, ratheesh kannoth

Hello Ratheesh,

I have no kernel 2.6.29.1 and any ia-64 harware, but looked on modern  
(3.6) kernel sources.
 From arch/ia64/include/asm/io.h you can see that virt_to_phys and  
virt_to_bus are actually the same function.
It's implementation is to return (unsigned long) address - PAGE_OFFSET.
I guess, PAGE_OFFSET for ia-64 is defined in arch/ia64/include/asm/page.h  
as RGN_BASE(RGN_KERNEL).
RGN_KERNEL is a simple constant (equals 7), which obviously determines  
region. Region number (here, 7) is located in top three bits of 64 bit  
address, so RGN_BASE simply shifts its argument with 61 bit (see RGN_SHIFT  
define).
So, writing in numbers: vitr_to_phys (and virt_to_bus) simply returns  
(unsigned long) address - 0xE000000000000000.
The only way you can get ptr == virt_to_phys(ptr) is incorrectly treating  
operands as 32-bit numbers (i.e. printk("%u", ptr) instead of  
printk("%lu", ptr)).

BR, Anatoliy Sivov

ratheesh kannoth <ratheesh.ksz@gmail.com> писал(а) в своём письме Wed, 14  
Nov 2012 14:11:14 +0400:

> Hi,
>
> I am running  2.6.29.1 on ia-64 hardware.
>
>
> when i run  below code in a module
>
> void *ptr =  kmalloc( 10 ,GFP_KERNEL )
>
> i got a valid ptr ( ptr != NULL ) ..but i saw that
>
> ptr == vitr_to_phy(ptr ) == virt_to_bus(ptr )
>
> 1. why   the physical and vitrual address  are same ?
> 2. is this sthing that we can change in kernel config during kernel
> compilation ?
>
> -Ratheesh
> --
> To unsubscribe from this list: send the line "unsubscribe linux-newbie"  
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.linux-learn.org/faqs

------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-11-14 17:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-14 10:11 ia64 linux question ratheesh kannoth
2012-11-14 17:22 ` Anatoliy Sivov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.