> On Jun 11, 2018, at 5:21 PM, David Holmes <david.hol...@oracle.com> wrote:
> 
> On 12/06/2018 12:12 AM, Bob Vandette wrote:
>>> On Jun 11, 2018, at 4:32 AM, David Holmes <david.hol...@oracle.com 
>>> <mailto:david.hol...@oracle.com>> wrote:
>>> 
>>> Sorry Bob I haven't had a chance to look at this detail.
>>> 
>>> For the Java code ... methods that return arrays should return zero-length 
>>> arrays when something is not available rather than null.
>> All methods do return zero length arrays except I missed the getPerCpuUsage. 
>>  I’ll fix that one and correct the javadoc.
> 
> There are a few more too:
> 

Those are covered by the function that converts the string range. 

> 231      * @return An array of available CPUs or null if metric is not 
> available.
> 232      *
> 233      */
> 234     public int[] getCpuSetCpus();
> 
> 242      * @return An array of available and online CPUs or null if the metric
> 243      *         is not available.
> 244      *
> 245      */
> 246     public int[] getEffectiveCpuSetCpus();
> 
> 256      * @return An array of available memory nodes or null if metric is 
> not available.
> 257      *
> 258      */
> 259     public int[] getCpuSetMems();
> 
> 267      * @return An array of available and online nodes or null if the 
> metric
> 268      *         is not available.
> 269      *
> 270      */
> 271     public int[] getEffectiveCpuSetMems();
>>> 
>>> For getCpuPeriod() the term "operating system time slice" can be 
>>> misconstrued as being related to the scheduler timeslice that may, or may 
>>> not, exist, depending on the scheduler and scheduling policy etc. This 
>>> "timeslice" is something specific to cgroups - no?
>> The comments reads:
>>       * Returns the length of the operating system time slice, in
>>       * milliseconds, for processes within the Isolation Group.
>> The comment does infer that it’s process and cgroup (Isolation group) 
>> specific and not the generic os timeslice.
>> Isn’t this sufficient?
> 
> The phrase "operating system" makes this sound like some kind of global 
> timeslice notion - which it isn't. And I don't like to think of cpu 
> periods/shares/quotas in terms of "time slice" anyway. I don't see the Docker 
> or Cgroup documentation using "time slice" either. It suffices IMHO to just 
> say for period:
> 
> * Returns the length of the scheduling period, in
> * milliseconds, for processes within the Isolation Group.
> 
> then for quota:
> 
> * Returns the total available run-time allowed, in milliseconds,
> * during each scheduling period for all tasks in the Isolation Group.
> 

Ok. I’ll update the docs. 
Bob

> Thanks,
> David
> 
>> Thanks,
>> Bob.
>>> 
>>> David
>>> 
>>>> On 8/06/2018 3:43 AM, Bob Vandette wrote:
>>>> Can I get one more reviewer for this RFE so I can integrate it?
>>>>> http://cr.openjdk.java.net/~bobv/8203357/webrev.01
>>>> Mandy Chung has reviewed this change.
>>>> I’ve run Mach5 hotspot and core lib tests.
>>>> I’ve reviewed the tests which were written by Harsha Wardhana
>>>> I filed a CSR for the command line change and it’s now approved and closed.
>>>> Thanks,
>>>> Bob.
>>>>> On May 30, 2018, at 3:45 PM, Bob Vandette <bob.vande...@oracle.com 
>>>>> <mailto:bob.vande...@oracle.com>> wrote:
>>>>> 
>>>>> Please review the following RFE which adds an internal API, along with 
>>>>> jtreg tests that provide
>>>>> access to Docker container configuration data and metrics.  In addition 
>>>>> to the API which we hope to
>>>>> take advantage of in the future with Java Flight Recorder and a JMX 
>>>>> Mbean, I’ve added an additional
>>>>> option to -XshowSettings:system than dumps out the container or host 
>>>>> cgroup confguration
>>>>> information.  See the sample output below:
>>>>> 
>>>>> RFE: Container Metrics
>>>>> 
>>>>> https://bugs.openjdk.java.net/browse/JDK-8203357
>>>>> 
>>>>> WEBREV:
>>>>> 
>>>>> http://cr.openjdk.java.net/~bobv/8203357/webrev.01
>>>>> 
>>>>> 
>>>>> This commit will also include a fix for the following bug.
>>>>> 
>>>>> BUG: [TESTBUG] Test /runtime/containers/cgroup/PlainRead.java fails
>>>>> 
>>>>> https://bugs.openjdk.java.net/browse/JDK-8203691
>>>>> 
>>>>> WEBREV:
>>>>> 
>>>>> http://cr.openjdk.java.net/~bobv/8203357/webrev.00/test/hotspot/jtreg/runtime/containers/cgroup/PlainRead.java.sdiff.html
>>>>> 
>>>>> SAMPLE USAGE and OUTPUT:
>>>>> 
>>>>> docker run —memory=256m --cpuset-cpus 4-7 -it ubuntu bash
>>>>> ./java -XshowSettings:system
>>>>> Operating System Metrics:
>>>>>    Provider: cgroupv1
>>>>>    Effective CPU Count: 4
>>>>>    CPU Period: 100000
>>>>>    CPU Quota: -1
>>>>>    CPU Shares: -1
>>>>>    List of Processors, 4 total:
>>>>>    4 5 6 7
>>>>>    List of Effective Processors, 4 total:
>>>>>    4 5 6 7
>>>>>    List of Memory Nodes, 2 total:
>>>>>    0 1
>>>>>    List of Available Memory Nodes, 2 total:
>>>>>    0 1
>>>>>    CPUSet Memory Pressure Enabled: false
>>>>>    Memory Limit: 256.00M
>>>>>    Memory Soft Limit: Unlimited
>>>>>    Memory & Swap Limit: 512.00M
>>>>>    Kernel Memory Limit: Unlimited
>>>>>    TCP Memory Limit: Unlimited
>>>>>    Out Of Memory Killer Enabled: true
>>>>> 
>>>>> TEST RESULTS:
>>>>> 
>>>>> testing runtime container APIs
>>>>> Directory "JTwork" not found: creating
>>>>> Passed: runtime/containers/cgroup/PlainRead.java
>>>>> Passed: runtime/containers/docker/DockerBasicTest.java
>>>>> Passed: runtime/containers/docker/TestCPUAwareness.java
>>>>> Passed: runtime/containers/docker/TestCPUSets.java
>>>>> Passed: runtime/containers/docker/TestMemoryAwareness.java
>>>>> Passed: runtime/containers/docker/TestMisc.java
>>>>> Test results: passed: 6
>>>>> Results written to /export/users/bobv/jdk11/build/jtreg/JTwork
>>>>> 
>>>>> testing jdk.internal.platform APIs
>>>>> Passed: jdk/internal/platform/cgroup/TestCgroupMetrics.java
>>>>> Passed: jdk/internal/platform/docker/TestDockerCpuMetrics.java
>>>>> Passed: jdk/internal/platform/docker/TestDockerMemoryMetrics.java
>>>>> Passed: jdk/internal/platform/docker/TestSystemMetrics.java
>>>>> Test results: passed: 4
>>>>> Results written to /export/users/bobv/jdk11/build/jtreg/JTwork
>>>>> 
>>>>> testing -XshowSettings:system launcher option
>>>>> Passed: tools/launcher/Settings.java
>>>>> Test results: passed: 1
>>>>> 
>>>>> 
>>>>> Bob.
>>>>> 
>>>>> 

Reply via email to