linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Smart <jsmart2021@gmail.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
	Johannes Thumshirn <jthumshirn@suse.de>
Cc: linux-scsi@vger.kernel.org,
	Dick Kennedy <dick.kennedy@broadcom.com>,
	James Smart <james.smart@broadcom.com>,
	Mark Rutland <mark.rutland@arm.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH v2 04/13] lpfc: Add push-to-adapter support to sli4
Date: Tue, 13 Feb 2018 09:37:35 -0800	[thread overview]
Message-ID: <b55fd2fc-7b10-e39c-8212-aeccadbb99a5@gmail.com> (raw)
In-Reply-To: <871shpo2fu.fsf@concordia.ellerman.id.au>

On 2/12/2018 9:59 PM, Michael Ellerman wrote:
> Johannes Thumshirn <jthumshirn@suse.de> writes:
> 
>> On Wed, Feb 07, 2018 at 10:51:57AM +0100, Johannes Thumshirn wrote:
>>>> +			/* Enable combined writes for DPP aperture */
>>>> +			pg_addr = (unsigned long)(wq->dpp_regaddr) & PAGE_MASK;
>>>> +#ifdef CONFIG_X86
>>>> +			rc = set_memory_wc(pg_addr, 1);
>>>> +			if (rc) {
>>>> +				lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
>>>> +						"3272 Cannot setup Combined "
>>>> +						"Write on WQ[%d] - disable DPP\n",
>>>> +						wq->queue_id);
>>>> +				phba->cfg_enable_dpp = 0;
>>>> +			}
>>>> +#else
>>>> +			phba->cfg_enable_dpp = 0;
>>>> +#endif
>>>> +		} else
>>>> +			wq->db_regaddr = phba->sli4_hba.WQDBregaddr;
>>>
>>> I don't really like the set_memory_wc() call here. Neither do I like the ifdef
>>> CONFIG_X86 special casing.
>>>
>>> If you really need write combining, can't you at least use ioremap_wc()?
>>
>> Coming back to this again (after talking to our ARM/POWER folks internally).
>> Is this really x86 specific here? I know there are servers with other architectures
>> using lpfcs out there.
>>
>> I _think_ write combining should be possible on other architectures (that have
>> PCIe and aren't dead) as well.
>>
>> The ioremap_wc() I suggested is probably wrong.
>>
>> So can you please revisit this? I CCed Mark and Michael, maybe they can help
>> here.
> 
> I'm not much of an I/O guy, but I do know that on powerpc we don't
> implement set_memory_wc(). So if you're using that then you do need the
> ifdef.
> 
> I couldn't easily find the rest of this thread, so I'm not sure if
> ioremap_wc() is an option. We do implement that and on modern CPUs at
> least it will give you something that's not just a plain uncached
> mapping.

I went back and looked at things.  It does appear that we should be 
using ioremap_wc().  There's a pci routine that wrappers it, but as 
we're already are using the other routines in the wrapper, it's not very 
interesting.   Ioremap_wc seems to be supported pretty much anywhere, 
with platforms managing what it resolves to. Granted, some platforms 
may not do write combining but will relax the caching aspects (as 
Michael indicates).

The interesting thing is - when wc is truly on, we see a substantial 
difference. But in cases where wc isn't on and we perform the individual 
writes plus the flush before the doorbell write to synchronize things, 
it turns out it takes longer than if we don't use the feature. So, in 
cases where we don't have real wc, I'm going to turn it off. Based on 
what we've tested so far (includes ppc p8), we'll be leaving it enabled 
on X86 only.

-- james

  reply	other threads:[~2018-02-13 17:37 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-07  2:28 [PATCH v2 00/13] lpfc new hardware patches for 12.0.0.0 James Smart
2018-02-07  2:28 ` [PATCH v2 01/13] lpfc: Rework lpfc to allow different sli4 cq and eq handlers James Smart
2018-02-07  9:01   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 02/13] lpfc: Rework sli4 doorbell infrastructure James Smart
2018-02-07  9:13   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 03/13] lpfc: Add SLI-4 if_type=6 support to the code base James Smart
2018-02-07  9:17   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 04/13] lpfc: Add push-to-adapter support to sli4 James Smart
2018-02-07  9:51   ` Johannes Thumshirn
2018-02-07 10:27     ` Johannes Thumshirn
2018-02-07 15:42       ` James Smart
2018-02-13  5:59       ` Michael Ellerman
2018-02-13 17:37         ` James Smart [this message]
2018-02-07  2:28 ` [PATCH v2 05/13] lpfc: Add PCI Ids for if_type=6 hardware James Smart
2018-02-07  9:52   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 06/13] lpfc: Add 64G link speed support James Smart
2018-02-07  9:58   ` Johannes Thumshirn
2018-02-07 15:38     ` James Smart
2018-02-07 15:40       ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 07/13] lpfc: Add if_type=6 support for cycling valid bits James Smart
2018-02-07 10:01   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 08/13] lpfc: Enable fw download on if_type=6 devices James Smart
2018-02-07 10:03   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 09/13] lpfc: Add embedded data pointers for enhanced performance James Smart
2018-02-07 10:17   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 10/13] lpfc: Fix nvme embedded io length on new hardware James Smart
2018-02-07 10:32   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 11/13] lpfc: Work around NVME cmd iu SGL type James Smart
2018-02-07 10:39   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 12/13] lpfc: update driver version to 12.0.0.0 James Smart
2018-02-07 10:39   ` Johannes Thumshirn
2018-02-07  2:28 ` [PATCH v2 13/13] lpfc: Update 12.0.0.0 modified files for 2018 Copyright James Smart
2018-02-07 10:50   ` Johannes Thumshirn

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=b55fd2fc-7b10-e39c-8212-aeccadbb99a5@gmail.com \
    --to=jsmart2021@gmail.com \
    --cc=dick.kennedy@broadcom.com \
    --cc=james.smart@broadcom.com \
    --cc=jthumshirn@suse.de \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mark.rutland@arm.com \
    --cc=mpe@ellerman.id.au \
    /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).