Age | Commit message (Collapse) | Author | Files | Lines |
|
It's possible for xe_supports_faults to return false if the system is
busy with multiple running tests. This is because the check looks for
all active VMs and searches for VMs that do not have faults enabled,
returning false if any exist. Recently, this check has been changed to
return EBUSY when the check fails in this way, so wait for up to two
seconds for all the active VMs to flush out before proceeding.
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Return the exact error value from the ioctl used in xe_supports_faults.
This is done because it is possible that faults are supported on the
system but are temporarily unavailable due to VM usage. This change
allows the user to determine if they are willing to wait for fault
support to become active again.
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
The additional s4-mocs implementation crossed with the change of how S4
is tested in commit 4b767566bbc6 ("tests/intel/xe_pm: S4 to go up to
devices only"). Apply the same logic as in other tests.
Fixes: 1a77ac56d453 ("tests/intel/xe_pm: Add mocs S2-idle/S3/S4 suspend resume test")
Acked-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/20240513162435.952578-3-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
{s_state}-mocs is not tested by test_exec(). Move it on top of the right
function.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Link: https://lore.kernel.org/r/20240513162435.952578-2-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
mocs_suspend_resume is not really suspending/resuming the CPU. It's just
checking rpm (GPU) goes back to suspended status after dropping the
forcewake.
Also drop the additional argument and just use the same "s_state",
passing NO_SUSPEND in this case, like it's done in other tests in xe_pm.
Acked-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/20240513162435.952578-1-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
We have two kind of buffers in IGT - intel-buf for render and
blt-object for blitter. intel-buf uses I915_TILING* whereas
blt-object blt_tiling_type (T_*). To construct blt-object from
intel-buf we need to convert I915_TILING* to T_*. Add function
which does this conversion.
Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com>
Link: https://lore.kernel.org/r/20240509053359.449885-4-zbigniew.kempczynski@intel.com
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Fb tile is defacto drm modifier, thus blt_tile_to_fb_tile() name
is confusing as it converts to I915_TILING*, not drm modifier.
Lets rename it.
Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com>
Link: https://lore.kernel.org/r/20240509053359.449885-3-zbigniew.kempczynski@intel.com
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
With dc2d7fb4f978, all kms_writeback subtests are skipped.
DRM_CLIENT_CAP_ATOMIC and DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
need to be set before igt_require which initializes a list
of outputs including writeback.
Fixes: dc2d7fb4f978 ("lib/igt_kms: move setting DRM_CLIENT_CAP_WRITEBACK_CONNECTORS to kms_writeback")
Signed-off-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
|
|
I want to enable 10bpc CCS support for i915. To that end start
testing it.
Note that we are faking things a bit because rendercopy will
still use a 8:8:8:8 format here (plumbing the full pixel format,
as opposed to just bpp, would require quite a bit more work).
However this seems to work fine, I suspect due to:
- we only do 1:1: copies of data
- the compression is lossless
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
This commit partially reverts bfa3db0cd9e9a - restores the changes done
to the width calculation.
v2: Add patch decription (Kamil / JP)
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
|
|
mc ccs need to go to vebox copy, blitter doesn't do mc ccs hence
on all platforms with ccs modifiers use engine copy for those.
Use render engine for x-tile on legacy platforms where x-tile
would otherwise endup on fastblit patch which is known to have
limitations.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Improve description of xe_spin_free. Also while at this,
fix few typos.
Cc: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Jagmeet Randhawa <jagmeet.randhawa@intel.com>
Acked-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
|
|
Currently DRM_CLIENT_CAP_WRITEBACK_CONNECTORS is set in the igt_display_require()
which is invoked for all IGT tests irrespective of whether the rest of the
writeback connector properties such as the FB_ID are set.
For the writeback connectors to function properly, additional setup steps are
required (like setting up the output buffers and submitting the job). These steps
are not a part of the default IGT setup, so there is no guarantee that the pipeline
will be executed at all. This results in regressions for msm boards across multiple
IGT tests on writeback connectors such as CTM related tests where CRC needs to
be collected after the CTM has been applied in hardware.
It is unclear whether this is intentional to be able to run all IGT tests even
with writeback connector or it is only kms_writeback which is supposed to
be the one.
Lets try with the latter approach by setting DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
only within kms_writeback.
changes since RFC:
- minor fixes to commit message
changes in v2:
- use igt_require_f to print descriptive message
- add msm card failure details in commit text
Reviewed-by: Rob Clark <robdclark@gmail.com>
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Acked-by: Petri Latvala <adrinael@adrinael.net>
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
|
|
Clocks/gpu_ticks should also be accumulated in intel_perf_accumulate_reports.
Fixes: cbe11c2939f8 ("lib/i915/perf: Add support for select MPEC formats")
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
|
|
It is safe to use skips just after igt_main() for skipping all
subtests but later on they produce logs and even if CI will
ignore that, such logs can mislead developers reading them.
Move a skip from middle of igt_main() code block into subtests
which needed them.
v2: add space after while (Kamil)
v3: remove macro in favor of function (Zbigniew)
v4: rename function and make it compact (Zbigniew)
v5: correct function behaviour after name change (Kamil)
Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
Cc: Sai Gowtham Ch <sai.gowtham.ch@intel.com>
Cc: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
The requirement `igt_sriov_is_pf` is essential for accurately skipping
tests in scenarios where the `sriov_totalvfs` attribute is absent. This
update restores the previously removed check to ensure proper test
behavior under such conditions.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
There is no point to run the tests if no VFs can be enabled.
Additionally, the `for_random_sriov_num_vfs` macro will lead
to undefined behavior if `sriov_totalvfs` is zero.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>
|
|
Start tracking what are the available keys related to engine utilization
that were parsed from fdinfo. This can be later used by application to
make decisions on which of them to use.
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://lore.kernel.org/r/20240504064643.25863-8-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Read drm-cycles from fdinfo and save it for later use. Like with the mem
regions, allow the number of engines to be updated regardless if
drm-engine-* or drm-cycles-* shows up first.
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://lore.kernel.org/r/20240504064643.25863-7-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
The prefix is not really needed and __igt_parse_drm_fdinfo()
can simply pass l + keylen as argument which simplifies the parse
functions.
While refactoring this, it also replaces the remaining calls to index()
to use strchr().
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://lore.kernel.org/r/20240504064643.25863-6-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Change strstartswith() so it also returns the length, which then can be
used inside the branch when it matches. A good compiler shall optimize
out the strlen call since the argument is a constant literal.
With this, the find_kv() is not needed anymore and the difference with
regard the other branches can be summarized with a new ignore_space()
helper and the fact it matches the entire key by appending the ':'. The
helper is added on top of the file so it can be reused later.
v2: Fix missing ignore_space() on drm-driver and drm-pdev
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://lore.kernel.org/r/20240504064643.25863-5-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
When parsing memory region, allow any number of spaces between value and
unit by using ignore_space() and adjusting constness of the variables.
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://lore.kernel.org/r/20240504064643.25863-3-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Extract ignore_space() to be used in other places.
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://lore.kernel.org/r/20240504064643.25863-2-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Temporarily disable verification due to ongoing investigation to
figure out the root cause of the error.
The comparison would continue, but assert is commented out.
Cc: Leo Liu <leo.liu@amd.com>
Cc: Ruijing Dong <ruijing.dong@amd.com>
Cc: Michael Strawbridge <michael.strawbridge@amd.com>
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
|
|
It was a typo , now rename amd_vce_dec.c to
amd_vce_enc.c
Cc: Leo Liu <leo.liu@amd.com>
Cc: Ruijing Dong <ruijing.dong@amd.com>
Cc: Michael Strawbridge <michael.strawbridge@amd.com>
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
|
|
Like `top` and `htop`, allow to pass -d, --delay =SEC[.TENTHS] as
argument.
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Link: https://lore.kernel.org/r/20240501173303.115737-5-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Add argument to limit number of executions, similar to the one accepted
by `top`. This allows testing changes and optimizations more easily.
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Link: https://lore.kernel.org/r/20240501173303.115737-4-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Add skeleton for option parsing, with just a -h/--help to be used
for additional options later.
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Link: https://lore.kernel.org/r/20240501173303.115737-3-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Besides printing the bar, also print the raw number for easy
visualization of small quantities. While at it, make sure gputop still
works with small console widths.
v2: Use %5.1f instead of %.1f so it also aligns the non-decimal part
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Link: https://lore.kernel.org/r/20240501173303.115737-2-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
All core tests are used to check Xe functionality. Add them to the Xe
testplan configuration.
Also, add descriptions for simple tests to the right place,
as otherwise warnings will be produced:
Warning: igt@core_getclient Description documentation is missing
Warning: igt@core_getstats Description documentation is missing
Warning: igt@core_setmaster_vs_auth Description documentation is missing
As each subtest requires its own description.
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
|
|
Read and dump pat debugfs entry.
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com>
Reviewed-by: Priyanka Dandamudi <Priyanka.dandamudi@intel.com>
|
|
Skips in fixture are safe to use just after begin of igt_main()
when they be working for all subtests. Later on, when used in
fixture they can mislead developers reading logs, so move one
into respective subtest.
v2: use bool var instead of fd (Zbigniew)
Cc: Sai Gowtham Ch <sai.gowtham.ch@intel.com>
Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
Cc: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Add test to check mocs values are retained over S2-idle/S3/S4
suspend resume states.
Cc: Badal Nilawar <badal.nilawar@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com>
|
|
Add test to check mocs values are retained over runtime
suspend/resume.
Cc: Badal Nilawar <badal.nilawar@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com>
|
|
Read and dump mocs debugfs entry.
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
|
|
sys/signal.h is non standard, emits a warning on musl libc and is
inconsistent with other files (which use just signal.h).
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
sys/poll.h is non-standard and including it on musl produces a warning.
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
sys/poll.h is non-standard and including it on musl produces a warning.
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
sys/poll.h is non-standard and including it on musl produces a warning.
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
sys/poll.h is non-standard and including it on musl produces a warning.
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
sys/poll.h is non-standard and including it on musl produces a warning.
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
musl libc expects this macro to be defined when using the types off64_t
and ino64_t. This does not affect glibc.
Signed-off-by: Reagan Bohan <reagan@ourmail.work>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Testing S4 (hibernation) is typically painful as there's mixed support
in OS versions and platforms in CI. Doing the entire dance of saving the
image to swap (which sometimes is a swapfile) and communicate that to
the kernel that is going to be booted (without initrd in the CI case) is
often a case of problems.
Main goal of xe_pm is to test if the xe driver and the graphics card are
working correctly, not that all the farm of machines correctly handle
all the corner cases (which is even more problematic as we test early
rc kernels).
Stop doing that and rather switch to going up to device shutdown +
platform low power state (the default in /sys/power/disk). If that is
acceptable and work out great, we may even do that unconditionally,
passing SUSPEND_TEST_DEVICES as it should work in other cases too.
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1043
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/20240503224745.14890-3-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Let's follow the sysfs filename that is being written/read so it's not
misinterpreted as something else: at first I thought it was dealing with
/sys/power/state, which it's not.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/20240503224745.14890-2-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
It doesn't make much sense to say the CPU is going to be put in D*
state. Reword it so the CPU and GPU states are better captured.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/20240503224745.14890-1-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Any wait timeouts are currently ignored, which might cause silent
failures in test. Be more noisy about them.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
test-list.txt and test-list-full.txt are not generated for
cross-builds and they are required by drm-ci for testing.
Commit 485bcb98182d ("tests/meson.build: only generate testlists on native builds")
disables generating .testlist files for cross-builds since
the binaries cannot be executed but test-list.txt and
test-list-full.txt generation shouldn't require that. So
generate them for cross-builds.
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Commit e72686b83b0b ("tests: create a single combined test list")
updated the build to generate a single test-list.txt instead of the two
single-tests.txt and multi-tests.txt files. Update the documentation in
igt_core.c to reflect that.
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20240503115545.44784-2-gustavo.sousa@intel.com
|
|
Doing xe2 gpgpu pipeline implementation we mostly taken into account
possibility of reusing the implementation for future platforms.
But not everywhere. Make it common.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Acked-by: Christoph Manszewski <christoph.manszewski@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Link: https://lore.kernel.org/r/20240425121337.433948-1-dominik.grzegorzek@intel.com
|
|
For a normal string, it's not correct to use just one backslash as
escape char as that conflicts with Python's escape. Use raw strings for
the regex patterns to avoid this problem. Fix the following warnings
that starts showing up with Python 3.12 (see
https://docs.python.org/3/whatsnew/3.12.html#other-language-changes):
[4/1809] Generating lib/i915-perf-registers-hsw with a custom command
/home/ldmartin/p/igt-gpu-tools/lib/i915/perf-configs/codegen.py:165: SyntaxWarning: invalid escape sequence '\$'
m = re.search('\$GtSlice([0-9]+)XeCore([0-9]+)$', name)
/home/ldmartin/p/igt-gpu-tools/lib/i915/perf-configs/codegen.py:168: SyntaxWarning: invalid escape sequence '\$'
m = re.search('\$GtSlice([0-9]+)$', name)
/home/ldmartin/p/igt-gpu-tools/lib/i915/perf-configs/codegen.py:171: SyntaxWarning: invalid escape sequence '\$'
m = re.search('\$GtSlice([0-9]+)DualSubslice([0-9]+)$', name)
/home/ldmartin/p/igt-gpu-tools/lib/i915/perf-configs/codegen.py:341: SyntaxWarning: invalid escape sequence '\$'
m = re.search('\$GtSlice([0-9]+)$', name)
/home/ldmartin/p/igt-gpu-tools/lib/i915/perf-configs/codegen.py:344: SyntaxWarning: invalid escape sequence '\$'
m = re.search('\$GtSlice([0-9]+)DualSubslice([0-9]+)$', name)
/home/ldmartin/p/igt-gpu-tools/lib/i915/perf-configs/codegen.py:347: SyntaxWarning: invalid escape sequence '\$'
m = re.search('\$GtSlice([0-9]+)XeCore([0-9]+)$', name)
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://lore.kernel.org/r/20240501070145.49810-1-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|