Questions about the trivial downcall
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Jul 27 00:45:08 UTC 2023
On 27/07/2023 01:40, Cheng Jin wrote:
>
> >> Right, JNI has not much to do with this. There's different ways to
> upcall back into Java (JNI and FFM upcall stubs).
>
> If so, my understanding is that both JNI and FFM upcall should crash
> the VM in a trivial FFM downcall, correct?
>
I believe so. Jorn will confirm.
Maurizio
> Best Regards
>
> Cheng Jin
>
> *From:*Maurizio Cimadamore <maurizio.cimadamore at oracle.com>
> *Sent:* Wednesday, July 26, 2023 8:29 PM
> *To:* Cheng Jin <jincheng at ca.ibm.com>; panama-dev at openjdk.org
> *Subject:* [EXTERNAL] Re: Questions about the trivial downcall
>
> and does not call back into Java (e. g. using an upcall stub).
> ß------------------------- it occurs to me that any kind of upcall
> should be disallowed in such case whether it is JNI or FFM, am I
> correct? Right, JNI has not much to do with this.
>
> ZjQcmQRYFpfptBannerStart
>
> *This Message Is From an External Sender *
>
> This message came from outside your organization.
>
> * Report Suspicious *
> <https://us-phishalarm-ewt.proofpoint.com/EWT/v1/PjiDSg!2c-gyJS_6lP6sKYb2IHEjb2TaeBqM7xJQ9RStijLaImfla_LrFEK8T2PB5_umxDwUuL8X7BGAHosOeXRLCglJfzdYnJaiHF6gQ$>
>
>
> ZjQcmQRYFpfptBannerEnd
>
> and does not call back into Java (e.g. using an upcall stub).
> ß------------------------- it occurs to me that any kind of upcall
> should be disallowed in such case whether it is JNI or FFM, am I
> correct?
>
> Right, JNI has not much to do with this. There's different ways to
> upcall back into Java (JNI and FFM upcall stubs).
>
> Your question is: what happens if we do call back when we are in
> trivial mode.
>
> I believe the answer is "we crash" (but not in a "nice way"), and I'm
> not too sure we can do much to prevent that. I believe Jorn knows more
> on that topic.
>
> Maurizio
>
> Best Regards
>
> Cheng Jin
>
> *From:*Maurizio Cimadamore <maurizio.cimadamore at oracle.com>
> <mailto:maurizio.cimadamore at oracle.com>
> *Sent:* Wednesday, July 26, 2023 7:44 PM
> *To:* Cheng Jin <jincheng at ca.ibm.com>
> <mailto:jincheng at ca.ibm.com>; panama-dev at openjdk.org
> *Subject:* [EXTERNAL] Re: Questions about the trivial downcall
>
> Hi, a trivial downcall is supposed to target a native function
> that (a) terminates quickly (so as not to block the GC for too
> long) and (b) does not upcall into Java. So, no, a trivial
> downcall cannot trigger upcalls (I don't think we detect
>
> ZjQcmQRYFpfptBannerStart
>
> *This Message Is From an External Sender *
>
> This message came from outside your organization.
>
> * Report Suspicious *
> <https://us-phishalarm-ewt.proofpoint.com/EWT/v1/PjiDSg!2c-r455VanMQ2qYReaGl7Z4QRx46ATMxAjK9nbXsj13QlLeimn0PtcIAb-U80cJ-A34Q8dYfoQ6JN5nMYOpBz-Hn3cuAGTZLJQ$>
>
>
> ZjQcmQRYFpfptBannerEnd
>
> Hi,
> a trivial downcall is supposed to target a native function that
> (a) terminates quickly (so as not to block the GC for too long)
> and (b) does not upcall into Java.
>
> So, no, a trivial downcall cannot trigger upcalls (I don't think
> we detect this, I believe the JVM just crashes if you do).
>
> Also I notice that you speak of "JNI" upcall. Is that what you
> really mean - e.g. a trivial FFM downcall making an upcall using
> JNI? In general, I think it's a bit hard for downcalls to do
> anything that has to do with JNI because the invoked native
> function is not passed a JNIEnv - FFM really just bridges the Java
> code with the native library function you want to call, nothing
> more. (I suppose that function could get its hands on the VM using
> the JNI attach API, but I feel that's a different question from
> what you were asking?).
>
> Maurizio
>
> On 26/07/2023 22:23, Cheng Jin wrote:
>
> Hi there,
>
> I’ve got a couple of questions about the behavior of a trivial
> downcall (with *isTrivial* specified).
>
> Is a FFI downcall able to trigger a JNI upcall ?
>
> If so, should a JNI upcall should be captured in this trivial
> downcall?
>
> Best Regards
>
> Cheng Jin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/panama-dev/attachments/20230727/8fcb6717/attachment-0001.htm>
More information about the panama-dev
mailing list