linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oded Gabbay <oded.gabbay@amd.com>
To: Dave Airlie <airlied@gmail.com>
Cc: David Airlie <airlied@linux.ie>,
	Alex Deucher <alexander.deucher@amd.com>,
	Jerome Glisse <j.glisse@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH v5 00/24] AMDKFD Kernel Driver
Date: Mon, 10 Nov 2014 09:36:23 +0200	[thread overview]
Message-ID: <54606AF7.8070506@amd.com> (raw)
In-Reply-To: <CAPM=9tyej9J13U0c+-DH-EYw_4JJQbiQM98QREZQLz4PPj+FmQ@mail.gmail.com>



On 11/10/2014 04:34 AM, Dave Airlie wrote:
> On 9 November 2014 04:37, Oded Gabbay <oded.gabbay@amd.com> wrote:
>> Hi,
>> Here is the v5 patch set of amdkfd.
>>
>> This version is released several days ahead of the release of AMD's HSA Runtime
>> library as Open Source. Coupled with the modification that Thomas Stellard
>> did for the r600 LLVM back-end, AMD will be effectively releasing a _complete_
>> userspace Open Source stack/solution for running HSA applications using
>> kernels written in OpenCL C99 on top of amdkfd.
>>
>
> Daniel pointed out too me a major problem with the approach of having
> two drivers
> touching on hw at all, they are facing similiar issues with their virt stuff,
>
> How does amdkfd interfact with runtime pm on the radeon driver? I'd expect
> some calls to the runtime get/put functions in some places.
>
> Dave.
>
Hi Dave,
Per Jerome's request from the first time he saw the driver, we removed all the 
"register bashing" code from amdkfd and moved them to the interface file between 
amdkfd and radeon, which is part of the radeon driver.
See "[PATCH v5 05/24] drm/radeon: Add radeon <--> amdkfd interface" for the 
implementation of that interface file.

amdkfd communicates with the H/W either through that file, or through packets 
submitted via the HIQ (a single kernel queue that is created/destroyed and 
exclusively used by amdkfd). By using the HIQ to submit the runlist to the GPU, 
we actually don't call to most of the interface file's functions. Those 
functions are mostly used in bring-up of new H/W with the scheduling mode of: 
"No CP scheduling"

Regarding power management, we have two hooks from the radeon driver, that call 
our driver (if it exists. if it doesn't exists, those call simply return without 
doing anything). I think this is better approach than amdkfd interface directly 
with the runtime pm, in order to prevent races between us and radeon. Do you agree ?

That code is also in Patch 5/24, at cik.c:

@@ -8471,6 +8476,10 @@ static int cik_startup(struct radeon_device *rdev)
  	if (r)
  		return r;

+	r = radeon_kfd_resume(rdev);
+	if (r)
+		return r;
+
  	return 0;
  }

@@ -8519,6 +8528,7 @@ int cik_resume(struct radeon_device *rdev)
   */
  int cik_suspend(struct radeon_device *rdev)
  {
+	radeon_kfd_suspend(rdev);
  	radeon_pm_suspend(rdev);
  	dce6_audio_fini(rdev);
  	radeon_vm_manager_fini(rdev);

- Oded


  reply	other threads:[~2014-11-10  7:36 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-08 18:37 [PATCH v5 00/24] AMDKFD Kernel Driver Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 01/24] drm/radeon: reduce number of free VMIDs and pipes in KV Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 02/24] drm/radeon/cik: Don't touch int of pipes 1-7 Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 03/24] drm/radeon: Report doorbell configuration to amdkfd Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 04/24] drm/radeon: adding synchronization for GRBM GFX Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 05/24] drm/radeon: Add radeon <--> amdkfd interface Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 06/24] Update MAINTAINERS and CREDITS files with amdkfd info Oded Gabbay
2014-11-08 18:46   ` Joe Perches
2014-11-08 18:59     ` Oded Gabbay
2014-11-08 20:54       ` Joe Perches
2014-11-08 19:01   ` Josh Triplett
2014-11-08 20:49     ` Joe Perches
2014-11-09  3:50       ` Josh Triplett
2014-11-08 18:37 ` [PATCH v5 07/24] amdkfd: Add IOCTL set definitions of amdkfd Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 08/24] amdkfd: Add amdkfd skeleton driver Oded Gabbay
2014-11-21 10:24   ` Paul Bolle
2014-11-21 19:34     ` Oded Gabbay
2014-11-21 20:18       ` Borislav Petkov
2014-11-08 18:37 ` [PATCH v5 09/24] amdkfd: Add topology module to amdkfd Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 10/24] amdkfd: Add basic modules " Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 11/24] amdkfd: Add binding/unbinding calls to amd_iommu driver Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 12/24] amdkfd: Add queue module Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 13/24] amdkfd: Add mqd_manager module Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 14/24] amdkfd: Add kernel queue module Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 15/24] amdkfd: Add module parameter of scheduling policy Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 16/24] amdkfd: Add packet manager module Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 17/24] amdkfd: Add process queue " Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 18/24] amdkfd: Add device " Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 19/24] amdkfd: Add interrupt handling module Oded Gabbay
2014-11-08 18:37 ` [PATCH v5 20/24] amdkfd: Implement the create/destroy/update queue IOCTLs Oded Gabbay
2014-11-08 18:50 ` [PATCH v5 21/24] amdkfd: Implement the Set Memory Policy IOCTL Oded Gabbay
2014-11-08 18:54 ` [PATCH v5 22/24] amdkfd: Implement the Get Clock Counters IOCTL Oded Gabbay
2014-11-08 18:54 ` [PATCH v5 23/24] amdkfd: Implement the Get Process Aperture IOCTL Oded Gabbay
2014-11-08 18:55 ` [PATCH v5 24/24] amdkfd: Implement the Get Version IOCTL Oded Gabbay
2014-11-10  2:34 ` [PATCH v5 00/24] AMDKFD Kernel Driver Dave Airlie
2014-11-10  7:36   ` Oded Gabbay [this message]
2014-11-10 21:16     ` Dave Airlie
2014-11-10 21:20       ` Alex Deucher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54606AF7.8070506@amd.com \
    --to=oded.gabbay@amd.com \
    --cc=airlied@gmail.com \
    --cc=airlied@linux.ie \
    --cc=alexander.deucher@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=j.glisse@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).