From bshanahan at tripwire.com Thu Nov 5 23:01:41 2015 From: bshanahan at tripwire.com (Bill Shanahan) Date: Thu, 5 Nov 2015 23:01:41 +0000 Subject: Best way to get help with PPC Linux AIX JRE Message-ID: <9189FF1F36C7494084D0E2605D35BB130A949058@PDXMB02.tripwire.com> Hey List Folks, What is the best way to get help with the challenges we encounter using OpenJDK on Power platforms? We are having issues like: Don't know where to get a canonical binary. A third-party crypto library fails its tests (they work on other JREs). Our integration tests fail. The JRE doesn't identify the OS correctly. Help? Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From volker.simonis at gmail.com Fri Nov 6 09:59:34 2015 From: volker.simonis at gmail.com (Volker Simonis) Date: Fri, 6 Nov 2015 10:59:34 +0100 Subject: Best way to get help with PPC Linux AIX JRE In-Reply-To: <9189FF1F36C7494084D0E2605D35BB130A949058@PDXMB02.tripwire.com> References: <9189FF1F36C7494084D0E2605D35BB130A949058@PDXMB02.tripwire.com> Message-ID: Hi Bill, welcome to the list! First of all, could you please post from the email account from which you've registered? As far as I saw, you've registered with bills at tripwire.com but posted your question from bshanahan at tripwire.com. That mail didn't automatically made it to the list and had to be approved by the list moderator first, because it was send from an account which hasn't been registered so far. On Fri, Nov 6, 2015 at 12:01 AM, Bill Shanahan wrote: > Hey List Folks, > > > > What is the best way to get help with the challenges we encounter using > OpenJDK on Power platforms? We are having issues like: > This list is the right place :) > Don?t know where to get a canonical binary. > This project as the OpenJDK project in general doesn't provide binaries. You'll have to compile them yourself from the source. > A third-party crypto library fails its tests (they work on other JREs). > > Our integration tests fail. > > The JRE doesn?t identify the OS correctly. > Please post the exact tests which fail with a description on how to reproduce them and we'll be happy to fix them. Regards, Volker > > Help? Thanks! From volker.simonis at gmail.com Wed Nov 18 17:36:25 2015 From: volker.simonis at gmail.com (Volker Simonis) Date: Wed, 18 Nov 2015 18:36:25 +0100 Subject: Problems in C2 on ppc64/ppc64le due to CompactStrings Message-ID: Hi, we are currently facing some problems in the C2 compiler on ppc64/ppc64le which are caused by the integration of the new CompactStrings feature. The errors manifest in various, mostly string related Java errors or NULLPointer exceptions. Running with '-Xcomp' will also result in an immediate crash. We are currently working on a fix for this problem but until we find it you can workaround the problem by using the XX:-SpecialStringEquals option. Regards, Volker -------------- next part -------------- An HTML attachment was scrubbed... URL: From volker.simonis at gmail.com Wed Nov 18 18:10:32 2015 From: volker.simonis at gmail.com (Volker Simonis) Date: Wed, 18 Nov 2015 19:10:32 +0100 Subject: Problems in C2 on ppc64/ppc64le due to CompactStrings In-Reply-To: References: Message-ID: ..and you'll probably also need to use -XX:-SpecialStringCompareTo and -XX:-SpecialStringIndexOf until we fix it for CompressedStrings... On Wed, Nov 18, 2015 at 6:36 PM, Volker Simonis wrote: > Hi, > > we are currently facing some problems in the C2 compiler on ppc64/ppc64le > which are caused by the integration of the new CompactStrings feature. The > errors manifest in various, mostly string related Java errors or > NULLPointer exceptions. Running with '-Xcomp' will also result in an > immediate crash. > > We are currently working on a fix for this problem but until we find it > you can workaround the problem by using the XX:-SpecialStringEquals option. > > Regards, > Volker > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.stuefe at gmail.com Fri Nov 20 10:49:19 2015 From: thomas.stuefe at gmail.com (=?UTF-8?Q?Thomas_St=C3=BCfe?=) Date: Fri, 20 Nov 2015 11:49:19 +0100 Subject: RFR(L): 8143125: [aix] Further Developments for AIX Message-ID: Hi all, please review and sponsor these AIX only changes. Basically, with this change we bring the OpenJDK AIX hotspot port up to speed with the developments done at SAP in the recent months. For a more detailled number of changes and fixes, please refer to the bug description. Bug: https://bugs.openjdk.java.net/browse/JDK-8143125 webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8143125-Further/webrev.00/webrev/index.html Kind Regards, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From christoph.langer at sap.com Fri Nov 20 11:30:42 2015 From: christoph.langer at sap.com (Langer, Christoph) Date: Fri, 20 Nov 2015 11:30:42 +0000 Subject: RFR(L): 8143125: [aix] Further Developments for AIX In-Reply-To: References: Message-ID: <0DFD2E72402C9243A8630A7759B27E4338F58B19@DEWDFEMB12B.global.corp.sap> Hi Thomas, I can see that in your change you are including "libo4.hpp" in os_aix.cpp. But I can't see this header being part of your patch nor of the OpenJDK depot. Best regards Christoph -----Original Message----- From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On Behalf Of Thomas St?fe Sent: Freitag, 20. November 2015 11:49 To: ppc-aix-port-dev at openjdk.java.net; HotSpot Open Source Developers Subject: RFR(L): 8143125: [aix] Further Developments for AIX Hi all, please review and sponsor these AIX only changes. Basically, with this change we bring the OpenJDK AIX hotspot port up to speed with the developments done at SAP in the recent months. For a more detailled number of changes and fixes, please refer to the bug description. Bug: https://bugs.openjdk.java.net/browse/JDK-8143125 webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8143125-Further/webrev.00/webrev/index.html Kind Regards, Thomas From thomas.stuefe at gmail.com Fri Nov 20 11:46:35 2015 From: thomas.stuefe at gmail.com (=?UTF-8?Q?Thomas_St=C3=BCfe?=) Date: Fri, 20 Nov 2015 12:46:35 +0100 Subject: RFR(L): 8143125: [aix] Further Developments for AIX In-Reply-To: <0DFD2E72402C9243A8630A7759B27E4338F58B19@DEWDFEMB12B.global.corp.sap> References: <0DFD2E72402C9243A8630A7759B27E4338F58B19@DEWDFEMB12B.global.corp.sap> Message-ID: Hi Christoph, thanks, good catch :) I updated the webrev.00 in place. Kind Regards, Thomas On Fri, Nov 20, 2015 at 12:30 PM, Langer, Christoph < christoph.langer at sap.com> wrote: > Hi Thomas, > > I can see that in your change you are including "libo4.hpp" in os_aix.cpp. > But I can't see this header being part of your patch nor of the OpenJDK > depot. > > Best regards > Christoph > > -----Original Message----- > From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On Behalf > Of Thomas St?fe > Sent: Freitag, 20. November 2015 11:49 > To: ppc-aix-port-dev at openjdk.java.net; HotSpot Open Source Developers < > hotspot-dev at openjdk.java.net> > Subject: RFR(L): 8143125: [aix] Further Developments for AIX > > Hi all, > > please review and sponsor these AIX only changes. Basically, with this > change we bring the OpenJDK AIX hotspot port up to speed with the > developments done at SAP in the recent months. > > For a more detailled number of changes and fixes, please refer to the bug > description. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8143125 > webrev: > > http://cr.openjdk.java.net/~stuefe/webrevs/8143125-Further/webrev.00/webrev/index.html > > Kind Regards, Thomas > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.kozlov at oracle.com Fri Nov 20 16:01:38 2015 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 20 Nov 2015 08:01:38 -0800 Subject: crc32 on ppc64 (8131048) Message-ID: <564F43E2.1050100@oracle.com> Hi, We are reviewing crc32 implementation for SPARC currently and I looked on ppc code and found strange code for flag setting - it reset (set off) UseCRC32CIntrinsics flag immediately after setting it on: http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/f60b602209c7/src/cpu/ppc/vm/vm_version_ppc.cpp#l162 Is it intentional? Thanks, Vladimir From volker.simonis at gmail.com Fri Nov 20 16:41:14 2015 From: volker.simonis at gmail.com (Volker Simonis) Date: Fri, 20 Nov 2015 17:41:14 +0100 Subject: crc32 on ppc64 (8131048) In-Reply-To: <564F43E2.1050100@oracle.com> References: <564F43E2.1050100@oracle.com> Message-ID: Hi Vladimir, did you mixed up UseCRC32CIntrinsics with UseCRC32Intrinsics (without the "C" in the middle)? We have only implemented CRC32 until now but not CRC32C. I was confused myself after your question and only found the solution after using "grep" with copy and pasting "UseCRC32CIntrinsics". Regards, Volker On Fri, Nov 20, 2015 at 5:01 PM, Vladimir Kozlov wrote: > Hi, > > We are reviewing crc32 implementation for SPARC currently and I looked on > ppc code and found strange code for flag setting - it reset (set off) > UseCRC32CIntrinsics flag immediately after setting it on: > > > http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/f60b602209c7/src/cpu/ppc/vm/vm_version_ppc.cpp#l162 > > Is it intentional? > > Thanks, > Vladimir > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.kozlov at oracle.com Fri Nov 20 16:55:31 2015 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 20 Nov 2015 08:55:31 -0800 Subject: crc32 on ppc64 (8131048) In-Reply-To: References: <564F43E2.1050100@oracle.com> Message-ID: <564F5083.4050908@oracle.com> On 11/20/15 8:41 AM, Volker Simonis wrote: > Hi Vladimir, > > did you mixed up UseCRC32CIntrinsics with UseCRC32Intrinsics (without > the "C" in the middle)? Of cause I did :) Sorry for the noise. Regards, Vladimir > > We have only implemented CRC32 until now but not CRC32C. > > I was confused myself after your question and only found the solution > after using "grep" with copy and pasting "UseCRC32CIntrinsics". > > Regards, > Volker > > > On Fri, Nov 20, 2015 at 5:01 PM, Vladimir Kozlov > > wrote: > > Hi, > > We are reviewing crc32 implementation for SPARC currently and I > looked on ppc code and found strange code for flag setting - it > reset (set off) UseCRC32CIntrinsics flag immediately after setting > it on: > > http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/f60b602209c7/src/cpu/ppc/vm/vm_version_ppc.cpp#l162 > > Is it intentional? > > Thanks, > Vladimir > > From goetz.lindenmaier at sap.com Tue Nov 24 11:38:02 2015 From: goetz.lindenmaier at sap.com (Lindenmaier, Goetz) Date: Tue, 24 Nov 2015 11:38:02 +0000 Subject: RFR(L): 8143125: [aix] Further Developments for AIX In-Reply-To: References: Message-ID: <4295855A5C1DE049A61835A1887419CC41ED076B@DEWDFEMB12A.global.corp.sap> Hi Thomas, I looked at your change. It?s good we get these improvements into openJDK. But I think we should skip some stuff that's not (yet?) used there. I'll sponsor the change. Details: libperfstat_aix.cpp: What do you need static fun_perfstat_partition_total_t g_fun_perfstat_partition_total = NULL; static fun_perfstat_wpar_total_t g_fun_perfstat_wpar_total = NULL; static fun_wpar_getcid_t g_fun_wpar_getcid = NULL; for? I think they are never used. libperfstat_aix.cpp:161 We support AIX 5.3 with xlC12 only. I think we need not add the older #defines to openJDK. Also, the comment should be adapted and not mention xlc8 etc. Also, there are datastructures for 5.2 which can be removed. Where is this used? bool libperfstat::get_wparinfo(wparinfo_t* pwi) Do we need it if it's not used? libperfstat.hpp:835 I would remove these prototypes commented out. loadlib_aix.cpp Why do you do these changes? Please revert them. os_aix.hpp:219 What's this good for? get_brk_at_startup() get_lowest_allocation_above_brk() os_aix.hpp:259 What's this good for? parse_qsyslib_path() os_aix.cpp:410 Why do you move query_multipage_support()? os_aix.inline.hpp:164 Why do you reverse the order of the functions here? The old order is the same as in the related files os_linux.inline.hpp etc. Best regards, Goetz. > -----Original Message----- > From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On > Behalf Of Thomas St?fe > Sent: Freitag, 20. November 2015 11:49 > To: ppc-aix-port-dev at openjdk.java.net; HotSpot Open Source Developers > Subject: RFR(L): 8143125: [aix] Further Developments for AIX > > Hi all, > > please review and sponsor these AIX only changes. Basically, with this > change we bring the OpenJDK AIX hotspot port up to speed with the > developments done at SAP in the recent months. > > For a more detailled number of changes and fixes, please refer to the bug > description. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8143125 > webrev: > http://cr.openjdk.java.net/~stuefe/webrevs/8143125- > Further/webrev.00/webrev/index.html > > Kind Regards, Thomas From thomas.stuefe at gmail.com Wed Nov 25 17:01:15 2015 From: thomas.stuefe at gmail.com (=?UTF-8?Q?Thomas_St=C3=BCfe?=) Date: Wed, 25 Nov 2015 18:01:15 +0100 Subject: RFR(L): 8143125: [aix] Further Developments for AIX In-Reply-To: <4295855A5C1DE049A61835A1887419CC41ED076B@DEWDFEMB12A.global.corp.sap> References: <4295855A5C1DE049A61835A1887419CC41ED076B@DEWDFEMB12A.global.corp.sap> Message-ID: Hi Goetz, new webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8143125-Further/webrev.01/webrev/ thank you for reviewing! See remarks inline... On Tue, Nov 24, 2015 at 12:38 PM, Lindenmaier, Goetz < goetz.lindenmaier at sap.com> wrote: > Hi Thomas, > > I looked at your change. It?s good we get these improvements into > openJDK. But I think we should skip some stuff that's not (yet?) > used there. I'll sponsor the change. Details: > > libperfstat_aix.cpp: > > What do you need > static fun_perfstat_partition_total_t g_fun_perfstat_partition_total = > NULL; > static fun_perfstat_wpar_total_t g_fun_perfstat_wpar_total = NULL; > static fun_wpar_getcid_t g_fun_wpar_getcid = NULL; > for? I think they are never used. > > They are now used (for the respective wrapper functions which in turn are used in os_aix.cpp. Sorry for omitting this code. > libperfstat_aix.cpp:161 > We support AIX 5.3 with xlC12 only. I think we need not add the older > #defines to openJDK. Also, the comment should be adapted and not mention > xlc8 etc. > Also, there are datastructures for 5.2 which can be removed. > > Removed the older defines. I would for now prefer to leave the AIX 5.2 data structures in this file. I am not sure if we could encounter older libperfstat versions on AIX 5.3 too. I plan to rework this coding to get rid of the duplicate structure definitions, but would prefer to do this in a separate patch. > Where is this used? > bool libperfstat::get_wparinfo(wparinfo_t* pwi) > Do we need it if it's not used? > > It is now used :) in os_aix.cpp. > libperfstat.hpp:835 > I would remove these prototypes commented out. > > I removed them. > loadlib_aix.cpp > Why do you do these changes? Please revert them. > > I reverted them. > os_aix.hpp:219 > What's this good for? > get_brk_at_startup() > get_lowest_allocation_above_brk() > > I removed those prototypes. > os_aix.hpp:259 > What's this good for? > parse_qsyslib_path() > > I removed this prototype. > os_aix.cpp:410 > Why do you move query_multipage_support()? > > I moved this back to its original position. > os_aix.inline.hpp:164 > Why do you reverse the order of the functions here? > The old order is the same as in the related files os_linux.inline.hpp etc. > > I reversed the order back to original order. > Best regards, > Goetz. > > > Kind Regards, Thomas > > > -----Original Message----- > > From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On > > Behalf Of Thomas St?fe > > Sent: Freitag, 20. November 2015 11:49 > > To: ppc-aix-port-dev at openjdk.java.net; HotSpot Open Source Developers > > Subject: RFR(L): 8143125: [aix] Further Developments for AIX > > > > Hi all, > > > > please review and sponsor these AIX only changes. Basically, with this > > change we bring the OpenJDK AIX hotspot port up to speed with the > > developments done at SAP in the recent months. > > > > For a more detailled number of changes and fixes, please refer to the bug > > description. > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8143125 > > webrev: > > http://cr.openjdk.java.net/~stuefe/webrevs/8143125- > > Further/webrev.00/webrev/index.html > > > > Kind Regards, Thomas > -------------- next part -------------- An HTML attachment was scrubbed... URL: From goetz.lindenmaier at sap.com Thu Nov 26 08:29:27 2015 From: goetz.lindenmaier at sap.com (Lindenmaier, Goetz) Date: Thu, 26 Nov 2015 08:29:27 +0000 Subject: RFR(L): 8143125: [aix] Further Developments for AIX In-Reply-To: References: <4295855A5C1DE049A61835A1887419CC41ED076B@DEWDFEMB12A.global.corp.sap> Message-ID: <4295855A5C1DE049A61835A1887419CC41ED242C@DEWDFEMB12A.global.corp.sap> Hi Thomas, thanks a lot for doing all these changes. Looks good now. Could you add the change comment to the patch before you Make a webrev next time? Simplifies sponsoring ;) Best regards, Goetz. From: Thomas St?fe [mailto:thomas.stuefe at gmail.com] Sent: Mittwoch, 25. November 2015 18:01 To: Lindenmaier, Goetz Cc: ppc-aix-port-dev at openjdk.java.net; HotSpot Open Source Developers Subject: Re: RFR(L): 8143125: [aix] Further Developments for AIX Hi Goetz, new webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8143125-Further/webrev.01/webrev/ thank you for reviewing! See remarks inline... On Tue, Nov 24, 2015 at 12:38 PM, Lindenmaier, Goetz > wrote: Hi Thomas, I looked at your change. It?s good we get these improvements into openJDK. But I think we should skip some stuff that's not (yet?) used there. I'll sponsor the change. Details: libperfstat_aix.cpp: What do you need static fun_perfstat_partition_total_t g_fun_perfstat_partition_total = NULL; static fun_perfstat_wpar_total_t g_fun_perfstat_wpar_total = NULL; static fun_wpar_getcid_t g_fun_wpar_getcid = NULL; for? I think they are never used. They are now used (for the respective wrapper functions which in turn are used in os_aix.cpp. Sorry for omitting this code. libperfstat_aix.cpp:161 We support AIX 5.3 with xlC12 only. I think we need not add the older #defines to openJDK. Also, the comment should be adapted and not mention xlc8 etc. Also, there are datastructures for 5.2 which can be removed. Removed the older defines. I would for now prefer to leave the AIX 5.2 data structures in this file. I am not sure if we could encounter older libperfstat versions on AIX 5.3 too. I plan to rework this coding to get rid of the duplicate structure definitions, but would prefer to do this in a separate patch. Where is this used? bool libperfstat::get_wparinfo(wparinfo_t* pwi) Do we need it if it's not used? It is now used :) in os_aix.cpp. libperfstat.hpp:835 I would remove these prototypes commented out. I removed them. loadlib_aix.cpp Why do you do these changes? Please revert them. I reverted them. os_aix.hpp:219 What's this good for? get_brk_at_startup() get_lowest_allocation_above_brk() I removed those prototypes. os_aix.hpp:259 What's this good for? parse_qsyslib_path() I removed this prototype. os_aix.cpp:410 Why do you move query_multipage_support()? I moved this back to its original position. os_aix.inline.hpp:164 Why do you reverse the order of the functions here? The old order is the same as in the related files os_linux.inline.hpp etc. I reversed the order back to original order. Best regards, Goetz. Kind Regards, Thomas > -----Original Message----- > From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On > Behalf Of Thomas St?fe > Sent: Freitag, 20. November 2015 11:49 > To: ppc-aix-port-dev at openjdk.java.net; HotSpot Open Source Developers > Subject: RFR(L): 8143125: [aix] Further Developments for AIX > > Hi all, > > please review and sponsor these AIX only changes. Basically, with this > change we bring the OpenJDK AIX hotspot port up to speed with the > developments done at SAP in the recent months. > > For a more detailled number of changes and fixes, please refer to the bug > description. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8143125 > webrev: > http://cr.openjdk.java.net/~stuefe/webrevs/8143125- > Further/webrev.00/webrev/index.html > > Kind Regards, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From goetz.lindenmaier at sap.com Fri Nov 27 10:19:43 2015 From: goetz.lindenmaier at sap.com (goetz.lindenmaier at sap.com) Date: Fri, 27 Nov 2015 10:19:43 +0000 Subject: hg: ppc-aix-port/jdk7u/hotspot: 2 new changesets Message-ID: <201511271019.tARAJhJb012750@aojmv0008.oracle.com> Changeset: c1b92d84669e Author: mdoerr Date: 2015-10-12 12:20 +0200 URL: http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/c1b92d84669e 8139421: PPC64LE: MacroAssembler::bxx64_patchable kill register R12 Summary: Register R12 must be preserved for stub calls (e.g. deopt handler). Reviewed-by: goetz ! src/cpu/ppc/vm/macroAssembler_ppc.cpp Changeset: e214a23a690a Author: goetz Date: 2015-11-17 08:59 +0100 URL: http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/e214a23a690a 8139258: PPC64LE: argument passing problem when passing 15 floats in native call Reviewed-by: mdoerr, goetz Contributed-by: asmundak at google.com ! src/cpu/ppc/vm/interpreter_ppc.cpp ! src/cpu/ppc/vm/sharedRuntime_ppc.cpp From volker.simonis at gmail.com Mon Nov 30 15:35:09 2015 From: volker.simonis at gmail.com (Volker Simonis) Date: Mon, 30 Nov 2015 16:35:09 +0100 Subject: RFR - 8142872: Remove support for sun.nio.ch.PollSelectorProvider from 9 In-Reply-To: <5658A2D4.1010500@oracle.com> References: <5658A2D4.1010500@oracle.com> Message-ID: Hi Rob, Your change looks good. I think on AIX we still use the PollSelectorProvider but your change doesn?t change that. I've did a quick build and ran the corresponding JTreg test on AIX without a problem. We may tough consider a better implementation on AIX by using the pollset API [1,2] which is similar to Linux epoll. I therefore also forward this message to the ppc-aix-port-dev mailing list in the hope that some IBM colleagues may volunteer :) Regards, Volker [1] https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.basetrf1/pollset.htm [2] http://www.ibm.com/developerworks/aix/library/au-pollset/ On Fri, Nov 27, 2015 at 7:37 PM, Rob McKenna wrote: > Hi folks, > > From time to time we get bugs on PollSelectorProvider despite recommending > people use alternative implementations. The only way it can be used is > setting the following system property: > > -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider > > Superior SelectorProvider implementations exist for all Oracle JDK > platforms and PollSelectorProvider should not be used on those platforms if > at all possible. That being the case we'd like to pull it from the default > build: > > http://cr.openjdk.java.net/~robm/8076282/ > > -Rob > -------------- next part -------------- An HTML attachment was scrubbed... URL: