Re: Please upgrade your machines to sparc64

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

 



Just to clarify, unlike variable length ISAs Sparc has fixed 32bit and
64bit ISAs... Sparc v8+ is 32bits for every instruction executed while
for Sparc v9 it is 64bits for every instruction. Thus the overhead is
not just in pointers etc.. as is often the case on variable length
architectures. 64bit instructions potentially waste more cache as well
as use 2x the memory bandwidth. Also note that Sparc does not mix
32bit and 64bit instructions I presume that when a 64bit kernel is
executing 32bit code it switches back out of 64bit mode when returning
to userland...

You may wonder what advantage being so strict about instruction length
is... for one the Ultrasparc instruction decode stages have in the
past at least been wave pipelined... which as you may imagine is made
easier by having regular instruction lengths as well as infrequent
switches between 64bit and 32bit mode.



On Thu, Jun 23, 2016 at 3:31 PM, David Miller <davem@xxxxxxxxxxxxx> wrote:
> From: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx>
> Date: Thu, 23 Jun 2016 20:42:31 +0200
>
>> On 06/23/2016 05:06 PM, David Miller wrote:
>>> I think what irks people the most about what happened, is that the
>>> choosen a path is not the most optimal situation for the target
>>> platform.
>>
>> Why should it be any different for sparc64 than for ppc64el, amd64,
>> arm64, mips64el and so on? Is SPARC so extremely inefficient with
>> 64-bit pointers? I don't think so.
>
> It makes a significant performance and memory footprint difference.
>
> This is irrefutable.
>
> And all of those binaries you say "don't matter" take up memory,
> swap space, etc.  And if you add this up for the entire system
> it's non-trivial.
>
> Multiply this by some factor N when virtualization is involved.
>
>> I don't think it makes sense to compile things like dateutils with
>> 32-bit pointers for performance reasons. Also, I would assume that
>> modern compilers are able to optimize the code well enough that the
>> difference between 32-bit and 64-bit pointers isn't too big that
>> it justifies the effort.
>
> No compiler is going to optimize away the pointers in the data
> structures, and thus get all of those cache line and tlb misses back.
>
> I do all of my work with 32-bit gcc binaries, even thought I often am
> using tools I've built myself.
>
> It makes a huge difference.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux