Client VM for 64 bit linux

Erik Joelsson erik.joelsson at oracle.com
Fri Dec 28 08:48:05 UTC 2012


On 2012-12-28 06:35, Helbrass wrote:
> On Fri, 28 Dec 2012 01:04:05 +0200, David Holmes 
> <david.holmes at oracle.com> wrote:
>
>> On 28/12/2012 6:26 AM, Helbrass wrote:
>>> Hi Phil,
>>>
>>> First of all, you're always building both server and client for 32 bit,
>>> what's the big deal with always building it for 64 bit?
>>
>> Time and space.
>>
>> But the main point here is that 64-bit client VM is not a supported 
>> VM configuration. As discussed in the past you can easily modify 
>> things to build this yourself for your own usage.
>>
>> In the new build system you only get the VMs that you ask for at 
>> configure time. So I'm not opposed to changes that simply make it 
>> possible to ask for the 64-bit client VM (perhaps with a suitable 
>> warning that it is unsupported?). But it can never be a default as 
>> long as it is an unsupported configuration.
>
> That would be great! Tell me please, new build infrastructure targets 
> only openjdk8, or it will be ported to openjdk7 as well?
>
For now, it only targets 8. A port to 7 might happen in the future, but 
it's not decided yet.

/Erik
>
>>
>> David
>> -----
>>
>>>
>>> Second, I'm agree that in most cases server VM may be better, but in my
>>> case I'm programmer, not server administrator, and all day long I'm
>>> using NetBeans (which is awesome!). And it happened, that NetBeans
>>> cannot open full OpenJDK project on 64 bit VM because it fails with
>>> OutOfMemory, and when you're giving him 3GB RAM it still takes huge
>>> amount of time to scan everything. While on 32 bit client vm it works
>>> without any problems whatsoever. Unfortunately, I don't know hotspot
>>> internals to explain why this is happening, but still, cold start on 32
>>> bit client takes NetBeans 3 seonds, and cold start on 32 bit server vm
>>> takes 12 seconds. You'll say it's just 10 seconds difference, I'd say
>>> it's 4 times difference.
>>>
>>> I agree that this is minor issue, and openjdk developer team would not
>>> want to take any responsibilities for this, but for me personally it's
>>> just a possibility to get client openjdk vm without doing chrooted 32
>>> bit install of full linux.
>>>
>>> On Thu, 27 Dec 2012 20:13:46 +0200, Phil Race <philip.race at oracle.com>
>>> wrote:
>>>
>>>> I am fairly sure we do not want the build system to spit out a 64 bit
>>>> client VM by default.
>>>> My recollection from many years ago is that the VM team and
>>>> performance team determined
>>>> that the 64 bit server VM was as good as, or better than the 64 bit
>>>> client VM on all the
>>>> metrics that mattered and thus there was no reason for the 64 bit
>>>> client VM to be
>>>> supported.
>>>>
>>>> If you want an option to enable it that's one thing, but below it
>>>> looks like its always
>>>> built. Release engineering, product management, SQE and others will
>>>> object.
>>>>
>>>> -phil.
>>>>
>>>> On 12/27/2012 1:14 AM, Aekold Helbrass wrote:
>>>>> Hi David,
>>>>>
>>>>> Thanx for your answer. Yes, patches are really small, I hope they
>>>>> will not
>>>>> be crippled by email renderer. See patches below.
>>>>>
>>>>> And about new build system, can you please link me where can I 
>>>>> read more
>>>>> about it?
>>>>>
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> ### APPLY THIS PATCH ONTO HOTSPOT SUBFOLDER
>>>>> ###########################################
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> Index: make/Makefile
>>>>> --- make/Makefile Base (BASE)
>>>>> +++ make/Makefile Locally Modified (Based On LOCAL)
>>>>> @@ -183,14 +183,10 @@
>>>>> @$(ECHO) "No compiler1 ($(VM_TARGET)) for
>>>>> ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
>>>>> endif
>>>>> else
>>>>> - ifeq ($(ARCH_DATA_MODEL), 32)
>>>>> $(CD) $(OUTPUTDIR); \
>>>>> $(MAKE) -f $(ABS_OS_MAKEFILE) \
>>>>> $(MAKE_ARGS) $(VM_TARGET)
>>>>> - else
>>>>> - @$(ECHO) "No compiler1 ($(VM_TARGET)) for
>>>>> ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
>>>>> endif
>>>>> -endif
>>>>>
>>>>> # Build compiler2 (server) rule, different for platforms
>>>>> generic_build2:
>>>>> Index: make/linux/makefiles/defs.make
>>>>> --- make/linux/makefiles/defs.make Base (BASE)
>>>>> +++ make/linux/makefiles/defs.make Locally Modified (Based On LOCAL)
>>>>> @@ -116,15 +116,10 @@
>>>>>
>>>>> # On 32 bit linux we build server and client, on 64 bit just server.
>>>>> ifeq ($(JVM_VARIANTS),)
>>>>> - ifeq ($(ARCH_DATA_MODEL), 32)
>>>>> JVM_VARIANTS:=client,server
>>>>> JVM_VARIANT_CLIENT:=true
>>>>> JVM_VARIANT_SERVER:=true
>>>>> - else
>>>>> - JVM_VARIANTS:=server
>>>>> - JVM_VARIANT_SERVER:=true
>>>>> endif
>>>>> -endif
>>>>>
>>>>> # determine if HotSpot is being built in JDK6 or earlier version
>>>>>
>>>>>
>>>>>
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> ### APPLY THIS PATCH ONTO JDK SUBFOLDER
>>>>> ###############################################
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> ####################################################################################### 
>>>>>
>>>>>
>>>>> Index: make/java/redist/Makefile
>>>>> --- make/java/redist/Makefile Base (BASE)
>>>>> +++ make/java/redist/Makefile Locally Modified (Based On LOCAL)
>>>>> @@ -109,7 +109,6 @@
>>>>>
>>>>> # Hotspot client is only available on 32-bit non-Zero builds
>>>>> ifneq ($(ZERO_BUILD), true)
>>>>> -ifeq ($(ARCH_DATA_MODEL), 32)
>>>>> IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
>>>>> $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
>>>>> ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
>>>>> @@ -126,7 +125,6 @@
>>>>> endif
>>>>> endif
>>>>> endif
>>>>> -endif
>>>>>
>>>>> ifeq ($(PLATFORM), windows)
>>>>> # Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Windows
>>>>> @@ -159,7 +157,6 @@
>>>>>
>>>>> # Add .map and .pdb files to the import path for client and kernel 
>>>>> VMs.
>>>>> # These are only available on 32-bit windows builds.
>>>>> -ifeq ($(ARCH_DATA_MODEL), 32)
>>>>> ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
>>>>> ifeq ($(ZIP_DEBUGINFO_FILES),1)
>>>>> # the import JDK may not contain .diz files
>>>>> @@ -190,7 +187,6 @@
>>>>> endif
>>>>> endif
>>>>> endif
>>>>> -endif
>>>>>
>>>>> $(LIBDIR)/$(JVMLIB_NAME): $(HOTSPOT_LIB_PATH)/$(JVMLIB_NAME)
>>>>> $(install-import-file)
>>>>> @@ -311,7 +307,6 @@
>>>>> endif
>>>>>
>>>>> ifneq ($(ZERO_BUILD), true)
>>>>> -ifeq ($(ARCH_DATA_MODEL), 32)
>>>>>
>>>>> IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
>>>>> ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
>>>>> @@ -423,8 +418,6 @@
>>>>> # solaris ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
>>>>> solaris
>>>>> endif # 32bit solaris
>>>>>
>>>>> -endif # 32bit
>>>>> -
>>>>> endif # ZERO_BUILD
>>>>>
>>>>> # NOT Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
>>>>> NOT
>>>>> Windows
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Dec 27, 2012 at 12:06 AM, David
>>>>> Holmes<david.holmes at oracle.com>wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Attachments get stripped by the mailing software. If the patches are
>>>>>> small
>>>>>> enough please include them inline, else post them somewhere 
>>>>>> accessible.
>>>>>> Changes would be needed for both the old and new build systems.
>>>>>>
>>>>>> Thanks,
>>>>>> David Holmes
>>>>>>
>>>>>>
>>>>>> On 27/12/2012 1:56 AM, Aekold Helbrass wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> So, last time when I asked about 64 bit ClientVM someone explained
>>>>>>> me that
>>>>>>> it's fully compatible, just not build.
>>>>>>>
>>>>>>> I've made 2 patches to build system to build 64 bit client VM for
>>>>>>> linux.
>>>>>>> Unfortunately I do not have windows installation to check if it 
>>>>>>> works
>>>>>>> there, but on linux it works fine, runs NetBeans without problems,
>>>>>>> and for
>>>>>>> NetBeans difference between 32 and 64 is huge: 4 seconds cold start
>>>>>>> against
>>>>>>> 13 seconds cold start.
>>>>>>>
>>>>>>> Please see 2 files in attachment, they should be applied to hotspot
>>>>>>> and
>>>>>>> jdk
>>>>>>> repositories.
>>>>>>>
>>>>>>> Regards!
>>>>>>>
>>>>
>>>
>>>
>
>




More information about the build-dev mailing list