[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: [RFR]8215623: Add incremental dump for jmap histo
From:       <zanglin5 () jd ! com>
Date:       2019-04-22 2:05:39
Message-ID: 7c7f6ab507b0471baad13de89141c365 () jd ! com
[Download RAW message or body]

Dear All, 
        May I ask for more review of this webrev and CSR? 
        Webrev:  http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.06/
        CSR:  https://bugs.openjdk.java.net/browse/JDK-8222319. 

Thanks!
Lin
________________________________________
From: ê°ÁÕ
Sent: Monday, April 15, 2019 10:54
To: Jean Christophe Beyler
Cc: ê°ÁÕ; Hohensee, Paul; serviceability-dev@openjdk.java.net
Subject: Re: [RFR]8215623: Add incremental dump for jmap histo

Dear Jc,
       Thanks a lot for your suggestions, I have updated the CSR.

Hi All,
       May I get more review about the webrev and CSR,
       Webrev:  http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.06/
       CSR:  https://bugs.openjdk.java.net/browse/JDK-8222319.

BRs,
Lin

ÔÚ 2019Äê4Ô 13ÈÕ£¬ÉÏÎç2:15£¬Jean Christophe Beyler \
<jcbeyler@google.com<mailto:jcbeyler@google.com>> дµÀ£º

Hi Lin,

You could state in the CSR:
  - That not using the new flags makes the system behave as before; so it is a nop if \
                you don't use the new flags
  - What happens if the flags are passed negative values?
  - What happens if the flags are passed crazy big numbers?

Finally, I'd put a link to the current webrev if someone wanted more information.

Apart from that, it looks good to me (I might skip the diff as you put the output \
below) the text could just say: here is the  new usage text (maxchunk and maxfilesize \
are new)

Thanks,
Jc

On Wed, Apr 10, 2019 at 11:56 PM ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> \
wrote: Dear All,
    I have created a CSR at https://bugs.openjdk.java.net/browse/JDK-8222319.
    May I ask your help to review it? Thanks!


BRs,
Lin

ÔÚ 2019Äê4Ô 11ÈÕ£¬ÉÏÎç11:22£¬ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> дµÀ£º

Sorry, it should be CSR ticket

Thanks£¬
Lin

ÔÚ 2019Äê4Ô 11ÈÕ£¬ÉÏÎç11:16£¬ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> дµÀ£º

Also realized it requires a JCP ticket, I will create it.


Cheers,
Lin

ÔÚ 2019Äê4Ô 11ÈÕ£¬ÉÏÎç10:26£¬ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> дµÀ£º


Dear JC,
   Thanks so much, I suddenly realized your way is exactly what I want.
   And here is new wehbrev. \
http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.06/


BRs,
Lin

ÔÚ 2019Äê4Ô 11ÈÕ£¬ÉÏÎç4:40£¬Jean Christophe Beyler \
<jcbeyler@google.com<mailto:jcbeyler@google.com>> дµÀ£º

Hi Lin,

What I meant about the helper method was to not do this:


+    private static String add_option(String cmd, String opt) {
+      if (opt.equals("")) {
+        return cmd;
+      }
+      return cmd + opt + ",";
+    }
+

but to do this:

+    private static String add_option(String cmd, String opt) {
+      if (cmd.isEmpty()) {
+        return opt;
+      }
+      return cmd + "," + opt;
+    }
+

That way you only put the ',' when needed,
Jc



On Wed, Apr 10, 2019 at 5:33 AM ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> wrote:
Dear Jc,
     Thanks a lot for your comments, here is the refined webrev. May I ask your help \
to review again? http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.05/

BRs,
Lin

ÔÚ 2019Äê4Ô 4ÈÕ£¬ÉÏÎç4:57£¬Jean Christophe Beyler \
<jcbeyler@google.com<mailto:jcbeyler@google.com>> дµÀ£º

Hi Lin,

Just a few nits to be honest:

- http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.04/src/hotspot/share/utilities/ostream.cpp.udiff.html


  -> I don't think it's a good idea to just pass a char* and implicitly imagine it is \
                256 in length
  -> Should we not add that length as a parameter? btw, the test you have len > 255 \
is a bit too restrictive no? Technically you should wait until you find the last '/' \
and then test there no?  (technically we could use strrchr, no?)

http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.04/src/jdk.jcmd/share/classes/sun/tools/jmap/JMap.java.udiff.html
                
  -> the adding of the "," seems a bit off; I think it would be smarter to just have \
a helper add_option to cmdline that checks if it is not empty, then add "," and the \
                new option
     -> otherwise you always end the "," if there are more options even if you are \
ignoring them, no?

Finally:
} else if (subopt.equals("live")) {
-                liveopt = "-live";
+                // Add '-' for compatibility.
+                cmdline += "-" + subopt;

for consistency with how you do it for "all", should this not be:
} else if (subopt.equals("live")) {
-                liveopt = "-live";
+                // Add '-' for compatibility.
+                cmdline += "-live";

Thanks,
Jc

On Mon, Apr 1, 2019 at 5:18 AM ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> wrote:
Dear All£¬
      Here I updated the latest changeset which did the following refine:
      * fixed the compatibility issues so that old version of jmap can work normally \
                with latest changeset.
      * revised the code for parsing the jmap histo arguments.
      * revised the logic for incremental dumping of jmap histo.
      The main change of this webrev is making all arguments passed to virtual \
machine as one line. So there is no need to care about the max argument count \
limitation. And hence resolved the compatibility issues as discussed in \
http://mail.openjdk.java.net/pipermail/serviceability-dev/2019-March/027338.html

      May I  ask your help to review?
      http://cr.openjdk.java.net/~lzang/jmap-8214535/8215623/webrev.04/


BRs,
Lin

ÔÚ 2019Äê2Ô 26ÈÕ£¬ÉÏÎç10:50£¬ê°ÁÕ <zanglin5@jd.com<mailto:zanglin5@jd.com>> дµÀ£º

Dear All,
        I have revised the webrev at \
http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.02/.  May I ask your help for \
reviewing? Thanks


BRs,
Lin
-----Original Message-----
From: ê°ÁÕ
Sent: Friday, January 25, 2019 9:01 AM
To: Hohensee, Paul <hohensee@amazon.com<mailto:hohensee@amazon.com>>; serviceability-
dev@openjdk.java.net<mailto:dev@openjdk.java.net>
Subject: Re: [RFR]8215623: Add incremental dump for jmap histo

Dear All,
        May I get more review about this webrev?
        Webrev: http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.01/
        Bug: https://bugs.openjdk.java.net/browse/JDK-8215623


Thanks!
Lin
________________________________________
From: ê°ÁÕ
Sent: Wednesday, January 9, 2019 9:46:55 AM
To: Hohensee, Paul; serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net>
                
Subject: RE: [RFR]8215623: Add incremental dump for jmap histo

Hi Paul and All,
    Thanks a lot for your review and comments, I have updated the webrev to

Webrev: http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.01/

Bug: https://bugs.openjdk.java.net/browse/JDK-8215623
    Would you like to help review it. Thanks.

BRs
Lin

From: ê°ÁÕ
Sent: Monday, January 7, 2019 7:14 PM
To: Hohensee, Paul <hohensee@amazon.com<mailto:hohensee@amazon.com>>; serviceability-
dev@openjdk.java.net<mailto:dev@openjdk.java.net>; ê°ÁÕ \
                <zanglin5@jd.com<mailto:zanglin5@jd.com>>
Subject: RE: [RFR]8215623: Add incremental dump for jmap histo

And another way is to add a argument ¡°IncrementalFile=<path>¡±,which
specifies the location for saving the intermediate data file. And if it is not
specified, incremental data will dump to ¡°out¡±.

What do you think?

Thanks,
Lin
From: ê°ÁÕ
Sent: Monday, January 7, 2019 7:02 PM
To: Hohensee, Paul
<hohensee@amazon.com<mailto:hohensee@amazon.com><mailto:hohensee@amazon.com<mailto:hohensee@amazon.com>>>; \
serviceability- dev@openjdk.java.net<mailto:dev@openjdk.java.net><mailto:serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net>>
                
Subject: ´ð¸´: [RFR]8215623: Add incremental dump for jmap histo


Dear Paul,

       Thanks for your review, I agree your suggestion to make incremental
general. and

       I think the incremental file is better to be different with the file or the
"out", because

in future the parallel histo will have each thread individually dump their data,
and I want

it to be lock-free, so each thread need to dump to their own file. The final
data

will be sum up and dump to the file that "filename=<file>" specified.
Moreover, the incremental

file contains intermediate data, if it is dumped to "<file>", it more or less
"pollute" the final file (final file that contains lots intermediate data).

      so the logic is that incremental data will be dumped to a file named
"Histo_Dump_Temp.dump",

if the "filename" is assigned, the "Histo_Dump_Temp.dump" will be
generated under the same folder,

if "filename" not specified, it will dump to current dir. And if "chunkcount" is 0
or max_int, or "maxfilesize" is 0, the incremental dump will be disabled.

________________________________
·¢¼þÈË: Hohensee, Paul
<hohensee@amazon.com<mailto:hohensee@amazon.com><mailto:hohensee@amazon.com<mailto:hohensee@amazon.com>>>
 ·¢ËÍʱ¼ä: 2019Äê1Ô 1ÈÕ 4:56
ÊÕ¼þÈË: ê°ÁÕ; serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net><mailto:serviceability-<mailto:serviceability->
 dev@openjdk.java.net<mailto:dev@openjdk.java.net>>
Ö÷Ìâ: Re: [RFR]8215623: Add incremental dump for jmap histo


As for 8215622, update the copyright dates to 2019 please, since this won¡¯t
get pushed until then.



You might generalize the implementation so that all inspections are done
incrementally, and parameterize RecordInstanceClosure with the incremental
threshold. ¡°incremental¡± could become ¡°chunkcount=<n>¡±, where <n>
defaults to infinity (max value of size_t).



I¡¯d not use a default file name when ¡°chunkcount¡± is specified, I¡¯d just write to
whatever the output stream is. ¡°chunkcount¡± is then independent of ¡°file¡±.



I¡¯d add another histo argument for the maximum file size, call it ¡°maxfilesize¡±,
and parameterize RecordInstanceClosure with it. Default would be infinity
(max value of size_t).



If you want to make it easy to use your 8k and 5mb chunkcount and
maxfilesize combination, you could redefine your original ¡°incremental¡±
argument as syntactic sugar for ¡°chunkcount=8k,maxfilesize=5m¡±.



INCREMENTAL_THRESHOLD and MAX_INCREMENTAL_FILESIZE become
DEFAULT_CHUNKSIZE and MAX_FILE_SIZE, are both set to max size_t, and
should be defined as ¡°const int¡± within RecordInstanceClosure.



Thanks,



Paul



From: serviceability-dev <serviceability-dev-
bounces@openjdk.java.net<mailto:bounces@openjdk.java.net><mailto:serviceability-dev-<mailto:serviceability-dev->
 bounces@openjdk.java.net<mailto:bounces@openjdk.java.net>>> on behalf of ê°ÁÕ
<zanglin5@jd.com<mailto:zanglin5@jd.com><mailto:zanglin5@jd.com<mailto:zanglin5@jd.com>>>
                
Date: Thursday, December 20, 2018 at 11:13 PM
To: "serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net><mailto:serviceability-<mailto:serviceability->
 dev@openjdk.java.net<mailto:dev@openjdk.java.net>>" <serviceability-
dev@openjdk.java.net<mailto:dev@openjdk.java.net><mailto:serviceability-dev@openjdk.java.net<mailto:serviceability-dev@openjdk.java.net>>>
                
Subject: [RFR]8215623: Add incremental dump for jmap histo



Hi All,

      May I ask your help to review this patch for enhance jmap ¨Chisto.

It adds the ¡°incremental¡± arguments that allow jmap ¨Chisto to incrementally
save the intermediate data into a temp file.

The intermediate data is dumped incrementally and write to a rolling file,
which limit the size of the temp file to be small.

This is useful for user to get intermediate results when jmap/jvm process is
killed accidentally. Especially when the heap is large.



This patch is also part of the enhancement described in
https://bugs.openjdk.java.net/browse/JDK-8214535.



Webrev: http://cr.openjdk.java.net/~xiaofeya/8215623/webrev.00/

Bug: https://bugs.openjdk.java.net/browse/JDK-8215623



Thanks.



BRs,

Lin








--

Thanks,
Jc



--

Thanks,
Jc






--

Thanks,
Jc


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic