Re: RFR: 8287809: Revisit implementation of memory session

2022-06-03 Thread Maurizio Cimadamore
On Fri, 3 Jun 2022 15:47:21 GMT, Maurizio Cimadamore  
wrote:

> This is a cleanup of the memory session implementation. The main new concept 
> is that `MemorySessionImpl` is split into two parts: there is an 
> implementation of memory session and then there is a state abstraction 
> (`MemorySessionImpl.State`). This allows to share the state across multiple 
> session views, in a more clean way. The big consequence of this change is 
> that the routines on `ScopedMemoryAccess` now have to be defined in terms of 
> the state abstraction (but the changes are mostly mechanical).
> 
> I have consolidated the implementation quite a bit, by removing all the 
> duplicated logic for issuing similar-looking exceptions. I have also 
> addressed an issue with `checkValidState` throwing a _new_ 
> `WrongThreadException` instead of using a singleton (which is what the logic 
> for closing down shared session requires, to avoid stack walks that are too 
> deep).
> 
> `MemorySession.State::checkValidState` is now fully monomorphic; when looking 
> at benchmarks, this seems to be the best solution in order to make things 
> fast. Specializing implmentations to remove few plain checks does not buy 
> enough, and always has the risk of adding profile pollution.

Note: other cleanups are possible - such as flattening `ResourceList` into 
`MemorySession.State`. While that is possible, that's a tricky step, given that 
the session state can be registered against a cleaner. One option, which I 
explored, would be to use `MemorySessionImpl` for reachability - which then has 
an impact on `ScopedMemoryAccess`, as we would have to add reachability fences 
on the session, as well as on the session state. In any case, I'd like to 
proceed by steps, since this cleanup was already getting big enough.

-

PR: https://git.openjdk.java.net/jdk/pull/9017


RFR: 8287809: Revisit implementation of memory session

2022-06-03 Thread Maurizio Cimadamore
This is a cleanup of the memory session implementation. The main new concept is 
that `MemorySessionImpl` is split into two parts: there is an implementation of 
memory session and then there is a state abstraction 
(`MemorySessionImpl.State`). This allows to share the state across multiple 
session views, in a more clean way. The big consequence of this change is that 
the routines on `ScopedMemoryAccess` now have to be defined in terms of the 
state abstraction (but the changes are mostly mechanical).

I have consolidated the implementation quite a bit, by removing all the 
duplicated logic for issuing similar-looking exceptions. I have also addressed 
an issue with `checkValidState` throwing a _new_ `WrongThreadException` instead 
of using a singleton (which is what the logic for closing down shared session 
requires, to avoid stack walks that are too deep).

`MemorySession.State::checkValidState` is now fully monomorphic; when looking 
at benchmarks, this seems to be the best solution in order to make things fast. 
Specializing implmentations to remove few plain checks does not buy enough, and 
always has the risk of adding profile pollution.

-

Commit messages:
 - Add null check on Buffer::checkState
 - Add docs
 - Simplify checkValidState
 - Add fastpath for implicit session state
 - Merge branch 'master' into cleanup_memory_session_impl_keep_list
 - Fix asNonCloseable to return self
 - Drop MemorySession interface type from AbstractMemorySessionImpl
 - Simplify code by removing intermediate getUnsafeBase/getUnsafeOffset methods
 - Simplify readOnly check
 - Add @ForceInline in hot path from var handle access
 - ... and 3 more: https://git.openjdk.java.net/jdk/compare/d5b6c7bd...68028fa4

Changes: https://git.openjdk.java.net/jdk/pull/9017/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk=9017=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8287809
  Stats: 1752 lines in 39 files changed: 407 ins; 525 del; 820 mod
  Patch: https://git.openjdk.java.net/jdk/pull/9017.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/9017/head:pull/9017

PR: https://git.openjdk.java.net/jdk/pull/9017


Re: RFR: 8277307: Pre shared key sent under both session_ticket and pre_shared_key extensions [v2]

2022-06-03 Thread Sean Coffey
On Thu, 2 Jun 2022 21:02:16 GMT, Daniel Jeliński  wrote:

>> Session ticket extension should only contain pre-TLS1.3 stateless session 
>> tickets; it should not be used for sending TLS1.3 pre-shared keys.
>
> Daniel Jeliński has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   different check for TLS13

Looks good to me

-

Marked as reviewed by coffeys (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/8922


Re: RFR: 8287596: Reorg jdk.test.lib.util.ForceGC [v4]

2022-06-03 Thread Xue-Lei Andrew Fan
> This is a follow up update per comments in [JDK-8287384 
> PR](https://github.com/openjdk/jdk/pull/8907).  The tier1 and tier2 test in 
> open part looks good to me.  Please help to run Mach5 just case the closed 
> test cases are impacted.

Xue-Lei Andrew Fan has updated the pull request incrementally with one 
additional commit since the last revision:

  rollback is not in this branch

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8979/files
  - new: https://git.openjdk.java.net/jdk/pull/8979/files/a8768e09..4a80db95

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=8979=03
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=8979=02-03

  Stats: 58 lines in 1 file changed: 17 ins; 24 del; 17 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8979.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8979/head:pull/8979

PR: https://git.openjdk.java.net/jdk/pull/8979