Re: [PATCH 1/2] KVM test: Make the profiler could be configurated

2010-03-31 Thread Jason Wang

Michael Goldish wrote:

- Jason Wang jasow...@redhat.com wrote:

  

The patch let the profilers could be specified through configuration
file. kvm_stat was kept as the default profiler.



Looks good.  Some minor style comments:

  

Thanks for the comment, would re-send the patch.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Autotest] [PATCH 1/2] KVM test: Make the profiler could be configurated

2010-03-31 Thread Lucas Meneghel Rodrigues
On Tue, Mar 30, 2010 at 2:02 PM, Michael Goldish mgold...@redhat.com wrote:

 - Jason Wang jasow...@redhat.com wrote:

 The patch let the profilers could be specified through configuration
 file. kvm_stat was kept as the default profiler.

 Looks good.  Some minor style comments:

 Signed-off-by: Jason Wang jasow...@redhat.com
 ---
  client/tests/kvm/kvm_utils.py          |   23
 ++-
  client/tests/kvm/tests_base.cfg.sample |    2 +-
  2 files changed, 11 insertions(+), 14 deletions(-)

 diff --git a/client/tests/kvm/kvm_utils.py
 b/client/tests/kvm/kvm_utils.py
 index 8531c79..a73d5d4 100644
 --- a/client/tests/kvm/kvm_utils.py
 +++ b/client/tests/kvm/kvm_utils.py
 @@ -866,24 +866,21 @@ def run_tests(test_list, job):
          if dependencies_satisfied:
              test_iterations = int(dict.get(iterations, 1))
              test_tag = dict.get(shortname)
 -            # Setting up kvm_stat profiling during test execution.
 -            # We don't need kvm_stat profiling on the build tests.
 -            if dict.get(run_kvm_stat) == yes:
 -                profile = True
 -            else:
 -                # None because it's the default value on the base_test class
 -                # and the value None is specifically checked there.
 -                profile = None
 +            # Setting up profilers during test execution.
 +            profilers = dict.get(profilers)
 +            if profilers is not None:

 I think it's nicer and shorter to say if profilers instead of
 if profilers is not None.
 Better yet, use 'profilers = dict.get(profilers, )' so that if
 profilers isn't defined, or if the user said 'profilers = ', you can
 still call profilers.split(), i.e.:

 profilers = dict.get(profilers, )
 for profiler in profilers.split():
    job.profilers.add(profiler)

 and then you don't need the 'if'.
 This is also relevant to the job.profilers.delete() code below.

 +                for profiler in profilers.split():
 +                    job.profilers.add(profiler)

 -            if profile:
 -                job.profilers.add('kvm_stat')
              # We need only one execution, profiled, hence we're passing
              # the profile_only parameter to job.run_test().
              current_status = job.run_test(kvm, params=dict, tag=test_tag,
                                            iterations=test_iterations,
 -                                          profile_only=profile)
 -            if profile:
 -                job.profilers.delete('kvm_stat')
 +                                          profile_only= profilers is not 
 None)

 AFAIK, profile_only needs to be either True or None (Lucas, please correct
 me if I'm wrong).

You're right, Michael, the test class code checks specifically for
None. I have just reviewed the 2nd version of the patch and it looks
good. Applied:

http://autotest.kernel.org/changeset/4365
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] KVM test: Make the profiler could be configurated

2010-03-30 Thread Jason Wang
The patch let the profilers could be specified through configuration
file. kvm_stat was kept as the default profiler.

Signed-off-by: Jason Wang jasow...@redhat.com
---
 client/tests/kvm/kvm_utils.py  |   23 ++-
 client/tests/kvm/tests_base.cfg.sample |2 +-
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/client/tests/kvm/kvm_utils.py b/client/tests/kvm/kvm_utils.py
index 8531c79..a73d5d4 100644
--- a/client/tests/kvm/kvm_utils.py
+++ b/client/tests/kvm/kvm_utils.py
@@ -866,24 +866,21 @@ def run_tests(test_list, job):
 if dependencies_satisfied:
 test_iterations = int(dict.get(iterations, 1))
 test_tag = dict.get(shortname)
-# Setting up kvm_stat profiling during test execution.
-# We don't need kvm_stat profiling on the build tests.
-if dict.get(run_kvm_stat) == yes:
-profile = True
-else:
-# None because it's the default value on the base_test class
-# and the value None is specifically checked there.
-profile = None
+# Setting up profilers during test execution.
+profilers = dict.get(profilers)
+if profilers is not None:
+for profiler in profilers.split():
+job.profilers.add(profiler)
 
-if profile:
-job.profilers.add('kvm_stat')
 # We need only one execution, profiled, hence we're passing
 # the profile_only parameter to job.run_test().
 current_status = job.run_test(kvm, params=dict, tag=test_tag,
   iterations=test_iterations,
-  profile_only=profile)
-if profile:
-job.profilers.delete('kvm_stat')
+  profile_only= profilers is not None)
+
+if profilers is not None:
+for profiler in profilers.split():
+job.profilers.delete(profiler)
 
 if not current_status:
 failed = True
diff --git a/client/tests/kvm/tests_base.cfg.sample 
b/client/tests/kvm/tests_base.cfg.sample
index d162cf8..cc10713 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -41,7 +41,7 @@ nic_script = scripts/qemu-ifup
 address_index = 0
 
 # Misc
-run_kvm_stat = yes
+profilers = kvm_stat 
 
 
 # Tests

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] KVM test: Make the profiler could be configurated

2010-03-30 Thread Michael Goldish

- Jason Wang jasow...@redhat.com wrote:

 The patch let the profilers could be specified through configuration
 file. kvm_stat was kept as the default profiler.

Looks good.  Some minor style comments:

 Signed-off-by: Jason Wang jasow...@redhat.com
 ---
  client/tests/kvm/kvm_utils.py  |   23
 ++-
  client/tests/kvm/tests_base.cfg.sample |2 +-
  2 files changed, 11 insertions(+), 14 deletions(-)
 
 diff --git a/client/tests/kvm/kvm_utils.py
 b/client/tests/kvm/kvm_utils.py
 index 8531c79..a73d5d4 100644
 --- a/client/tests/kvm/kvm_utils.py
 +++ b/client/tests/kvm/kvm_utils.py
 @@ -866,24 +866,21 @@ def run_tests(test_list, job):
  if dependencies_satisfied:
  test_iterations = int(dict.get(iterations, 1))
  test_tag = dict.get(shortname)
 -# Setting up kvm_stat profiling during test execution.
 -# We don't need kvm_stat profiling on the build tests.
 -if dict.get(run_kvm_stat) == yes:
 -profile = True
 -else:
 -# None because it's the default value on the base_test class
 -# and the value None is specifically checked there.
 -profile = None
 +# Setting up profilers during test execution.
 +profilers = dict.get(profilers)
 +if profilers is not None:

I think it's nicer and shorter to say if profilers instead of
if profilers is not None.
Better yet, use 'profilers = dict.get(profilers, )' so that if
profilers isn't defined, or if the user said 'profilers = ', you can
still call profilers.split(), i.e.:

profilers = dict.get(profilers, )
for profiler in profilers.split():
job.profilers.add(profiler)

and then you don't need the 'if'.
This is also relevant to the job.profilers.delete() code below.

 +for profiler in profilers.split():
 +job.profilers.add(profiler)
  
 -if profile:
 -job.profilers.add('kvm_stat')
  # We need only one execution, profiled, hence we're passing
  # the profile_only parameter to job.run_test().
  current_status = job.run_test(kvm, params=dict, tag=test_tag,
iterations=test_iterations,
 -  profile_only=profile)
 -if profile:
 -job.profilers.delete('kvm_stat')
 +  profile_only= profilers is not 
 None)

AFAIK, profile_only needs to be either True or None (Lucas, please correct
me if I'm wrong).
In that case, it would be appropriate to use

profile_only=bool(profilers) or None

so that if profilers is e.g. kvm_stat, profile_only will be True,
and if profilers is , profile_only will be None.

 +
 +if profilers is not None:
 +for profiler in profilers.split():
 +job.profilers.delete(profiler)
  
  if not current_status:
  failed = True
 diff --git a/client/tests/kvm/tests_base.cfg.sample
 b/client/tests/kvm/tests_base.cfg.sample
 index d162cf8..cc10713 100644
 --- a/client/tests/kvm/tests_base.cfg.sample
 +++ b/client/tests/kvm/tests_base.cfg.sample
 @@ -41,7 +41,7 @@ nic_script = scripts/qemu-ifup
  address_index = 0
  
  # Misc
 -run_kvm_stat = yes
 +profilers = kvm_stat 

We don't need the quotes here now.  We'll need them later if we add
more profilers.  So it's OK to use

profilers = kvm_stat

and then later if we need another profiler:

profilers +=  some_other_profiler

  
  
  # Tests
 
 --
 To unsubscribe from this list: send the line unsubscribe kvm in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html