.
Signed-off-by: Matt Brown
---
Changelog
v6
- attribute names are stored locally, removing potential null pointer
errors
- added of_node_put for the corresponding of_find_node
- folded exports node creation into opal_export_attr()
- fixed kzalloc flags to GFP_KERNEL
.
Signed-off-by: Matt Brown
---
Changelog:
v7:
- moved exported_attrs and attr_name into opal_export_attrs
---
arch/powerpc/platforms/powernv/opal.c | 84 +++
1 file changed, 84 insertions(+)
diff --git a/arch/powerpc/platforms/powernv/opal.c
b/arch
-off-by: Matt Brown
---
Changelog
v8
- fixed error handling
- added dynamic allocation of attributes
- using of_property_read_u64_array for reading attr vals
- reordered vars
- renaming vars
---
arch/powerpc/platforms/powernv/opal.c | 81
Note: Also fixed a small bug in pq.h regarding a missing and mismatched
ifdef statement
Signed-off-by: Matt Brown
---
include/linux/raid/pq.h | 4 ++
lib/raid6/Makefile | 27 -
lib/raid6/algos.c | 4 ++
lib/raid6/altivec.uc| 3 ++
lib/raid6/test/Makefile | 28
ch adds an alternative function for ppc_md.get_random_seed on p9,
utilising the darn instruction.
Signed-off-by: Matt Brown
---
arch/powerpc/include/asm/ppc-opcode.h | 4
arch/powerpc/platforms/powernv/rng.c | 23 ++-
2 files changed, 26 insertions(+), 1 deletion(-)
diff --
Hi Daniel,
Just to respond to your comments,
The inline asm line cannot be formatted over multiple lines due to the
unrolling process, but we can take out the volatile.
The pagefault_disable() also seems to be an old method of disabling
preemption, but no longer actually works to disable preempt
Bugs fixed:
- A small bug in pq.h regarding a missing and mismatched
ifdef statement
- Fixed test/Makefile to correctly build test on ppc
Signed-off-by: Matt Brown
---
mpe I assume you are ok to take this patch, most of the other ppc raid patches
have gone through you
Previously the raid6 test Makefile did not correctly build the files for
testing on PowerPC. This patch fixes the bug, so that all appropriate files
for PowerPC are built.
Signed-off-by: Matt Brown
---
lib/raid6/test/Makefile | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff
raid6: vpermxor8 gen() 26279 MB/s
Note: Fixed minor bug in altivec.uc regarding missing and mismatched ifdef
statements.
Signed-off-by: Matt Brown
---
Changelog
v2
- Change CONFIG_ALTIVEC to CPU_FTR_ALTIVEC_COMP
- Seperate bug fix into different patch
---
include/linux/raid
Previously the raid6 test Makefile did not correctly build the files for
testing on PowerPC. This patch fixes the bug, so that all appropriate files
for PowerPC are built.
Signed-off-by: Matt Brown
---
Changlog
v2 - v4
- fixup whitespace
- change versioning to match other patch
raid6: vpermxor8 gen() 26279 MB/s
Note: Fixed minor bug in pq.h regarding missing and mismatched ifdef
statements.
Signed-off-by: Matt Brown
---
include/linux/raid/pq.h | 4 ++
lib/raid6/Makefile | 27 -
lib/raid6/algos.c | 4 ++
lib/raid6/altivec.uc| 3
-off-by: Matt Brown
---
Changelog
v5
- moved altivec.uc fix into this patch
- updates commit message
---
lib/raid6/altivec.uc| 3 +++
lib/raid6/test/Makefile | 8 +---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/raid6/altivec.uc b/lib/raid6/altivec.uc
raid6: vpermxor8 gen() 26279 MB/s
Signed-off-by: Matt Brown
---
Changelog
v5
- moved altivec.uc fix into other patch in series
---
include/linux/raid/pq.h | 4 ++
lib/raid6/Makefile | 27 -
lib/raid6/algos.c | 4 ++
lib/raid6/test/Makefile | 14 ++-
lib/raid6
-altivec code into xor_vmx_glue.c which calls the
altivec functions in xor_vmx.c. By compiling xor_vmx_glue.c without
-maltivec we can guarantee that altivec instruction will not be reordered
outside of the enable/disable block.
Signed-off-by: Matt Brown
---
arch/powerpc/lib/Makefile | 2
On Wed, May 24, 2017 at 11:36 PM, Paul Clarke wrote:
> On 05/23/2017 06:45 PM, Matt Brown wrote:
>> The xor_vmx.c file is used for the RAID5 xor operations. In these functions
>> altivec is enabled to run the operation and then disabled. However due to
>> compiler instructio
a function for ppc_md.get_random_seed on p9,
utilising the darn instruction.
Signed-off-by: Matt Brown
---
v2:
- remove repeat darn attempts
- move hook to rng_init
---
arch/powerpc/include/asm/ppc-opcode.h | 4
arch/powerpc/platforms/powernv/rng.c | 22 +
On Tue, Jul 11, 2017 at 7:34 PM, Daniel Axtens wrote:
> Hi Matt,
>
>> Currently ppc_md.get_random_seed uses the powernv_get_random_long function.
>> A guest calling this function would have to go through the hypervisor. The
>> 'darn' instruction, introduced in POWER9, allows us to bypass this by
>
This patch adds emulation of the cmpb instruction, enabling xmon to
emulate this instruction.
Signed-off-by: Matt Brown
---
arch/powerpc/lib/sstep.c | 24
1 file changed, 24 insertions(+)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 33117f8
This adds emulations for the popcntb, popcntw, and popcntd instructions.
Signed-off-by: Matt Brown
---
arch/powerpc/lib/sstep.c | 39 +++
1 file changed, 39 insertions(+)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index f3e9ba8..cf69987
This adds emulation for the bpermd instruction.
Signed-off-by: Matt Brown
---
arch/powerpc/lib/sstep.c | 23 +++
1 file changed, 23 insertions(+)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index cf69987..603654d 100644
--- a/arch/powerpc/lib/sstep.c
This add emulation for the prtyw and prtyd instructions.
Signed-off-by: Matt Brown
---
arch/powerpc/lib/sstep.c | 58 +++-
1 file changed, 52 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 603654d
This add emulation for the isel instruction.
Signed-off-by: Matt Brown
---
arch/powerpc/lib/sstep.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 3228783..bb0e301 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc
On Thu, Jul 13, 2017 at 5:37 PM, Segher Boessenkool
wrote:
> On Thu, Jul 13, 2017 at 01:25:47PM +1000, Matt Brown wrote:
>> +static nokprobe_inline void do_prtyw(struct pt_regs *regs, unsigned long v,
>> + int ra)
>> +{
>> + u
On Thu, Jul 13, 2017 at 5:47 PM, Segher Boessenkool
wrote:
> On Thu, Jul 13, 2017 at 01:25:48PM +1000, Matt Brown wrote:
>> + case 585: /* isel */
>
> The secondary opcode for isel is only 5 bits, not 10 like most other
> insns have.
Yet another conversion
On Thu, Jul 13, 2017 at 5:28 PM, Segher Boessenkool
wrote:
> On Thu, Jul 13, 2017 at 01:25:46PM +1000, Matt Brown wrote:
>> +static nokprobe_inline void do_bpermd(struct pt_regs *regs, unsigned long
>> v1,
>> + unsigned long v2, int ra)
>> +
The flush_dcache_phys_range function is no longer used in the kernel.
This patch removes and cleans up the function.
Signed-off-by: Matt Brown
---
arch/powerpc/include/asm/cacheflush.h | 1 -
arch/powerpc/kernel/misc_64.S | 38 ---
2 files changed, 39
functions, including drivers, have been
modified to conform to the new prototypes.
The 64 bit cacheflush functions which were implemented in assembly code
(flush_dcache_range, flush_inval_dcache_range) have been translated into
C for readability and coherence.
Signed-off-by: Matt Brown
---
arch
From: Matt Brown
The HDAT data area is consumed by skiboot and turned into a device-tree.
In some cases we would like to look directly at the HDAT, so this patch
adds a sysfs node to allow it to be viewed. This is not possible through
/dev/mem as it is reserved memory which is stopped by the
.
Signed-off-by: Matt Brown
---
Between v1 and v2 of the patch the following changes were made.
Changelog:
- moved hdat code into opal-hdat.c
- added opal-hdat to the makefile
- changed struct and variable names from camelcase
---
arch/powerpc/include/asm/opal.h| 1
.
Signed-off-by: Matt Brown
---
Changes between v2 to v3:
- fixed header comments
- simplified if statement
---
arch/powerpc/include/asm/opal.h| 1 +
arch/powerpc/platforms/powernv/Makefile| 1 +
arch/powerpc/platforms/powernv/opal-hdat.c | 65
.
Signed-off-by: Matt Brown
---
Changes between v3 and v4:
- changed sysfs attribute permissions from 0444 to 0400
- fixed makefile to be on same line
- fixed authorship/copyright info
- re-ordered includes
- changed hdat_info struct to a static struct
---
arch
patch also adds sysfs nodes for all properties in the device-tree
under /ibm,opal/firmware/exports.
Signed-off-by: Matt Brown
---
Changes between v4 and v5:
- all properties under /ibm,opal/firmware/exports in the device-tree
are now added as new sysfs nodes
- the new
This patch adds emulation of the cmpb instruction, enabling xmon to
emulate this instruction.
Tested for correctness against the cmpb asm instruction on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- fixed mask typecasting
---
arch/powerpc/lib/sstep.c | 20
This adds emulations for the popcntb, popcntw, and popcntd instructions.
Tested for correctness against the popcnt{b,w,d} instructions on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcodes
- fixed typecasting
- fixed bitshifting error for both 32 and 64bit arch
This adds emulation for the bpermd instruction.
Tested for correctness against the bpermd instruction on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- added ifdef tags to do_bpermd func
- fixed bitshifting errors
---
arch/powerpc/lib/sstep.c | 24
This add emulation for the prtyw and prtyd instructions.
Tested for logical correctness against the prtyw and prtyd instructions
on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcodes
- fixed bitshifting and typecast errors
- merged do_prtyw and do_prtyd into
This adds emulation for the isel instruction.
Tested for correctness against the isel instruction and its extended
mnemonics (lt, gt, eq) on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- fixed definition to include the 'if RA=0, a=0' clause
-
he drivers.
Thanks,
Matt Brown
On Thu, Jul 20, 2017 at 11:01 PM, Michael Ellerman wrote:
> Geert Uytterhoeven writes:
>
>> On Thu, Jul 20, 2017 at 1:43 PM, Michael Ellerman
>> wrote:
>>> Matt Brown writes:
>>>> The cacheflush prototypes currently use
On Mon, Jul 24, 2017 at 8:28 PM, Balbir Singh wrote:
> On Mon, Jul 24, 2017 at 11:01 AM, Matt Brown
> wrote:
>> This adds emulations for the popcntb, popcntw, and popcntd instructions.
>> Tested for correctness against the popcnt{b,w,d} instructions on ppc64le.
>>
>
This patch adds emulation of the cmpb instruction, enabling xmon to
emulate this instruction.
Tested for correctness against the cmpb asm instruction on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- fixed mask typecasting
---
arch/powerpc/lib/sstep.c | 20
This adds emulations for the popcntb, popcntw, and popcntd instructions.
Tested for correctness against the popcnt{b,w,d} instructions on ppc64le.
Signed-off-by: Matt Brown
---
v3:
- optimised using the Giles-Miller method of side-ways addition
v2:
- fixed opcodes
- fixed
This adds emulation for the bpermd instruction.
Tested for correctness against the bpermd instruction on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- added ifdef tags to do_bpermd func
- fixed bitshifting errors
---
arch/powerpc/lib/sstep.c | 24
This adds emulation for the prtyw and prtyd instructions.
Tested for logical correctness against the prtyw and prtyd instructions
on ppc64le.
Signed-off-by: Matt Brown
---
v3:
- optimised using the Giles-Miller method of side-ways addition
v2:
- fixed opcodes
- fixed
This adds emulation for the isel instruction.
Tested for correctness against the isel instruction and its extended
mnemonics (lt, gt, eq) on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- fixed definition to include the 'if RA=0, a=0' clause
-
On Thu, Jul 27, 2017 at 11:26 AM, Michael Ellerman wrote:
> Segher Boessenkool writes:
>
>> On Wed, Jul 26, 2017 at 08:03:30PM +1000, Michael Ellerman wrote:
>>> Segher Boessenkool writes:
>>> > A general question about these patches: some things are inside #ifdef
>>> > __powerpc64__, some are n
This patch adds emulation of the cmpb instruction, enabling xmon to
emulate this instruction.
Tested for correctness against the cmpb asm instruction on ppc64le.
Signed-off-by: Matt Brown
---
v2:
- fixed opcode
- fixed mask typecasting
---
arch/powerpc/lib/sstep.c | 20
This adds emulations for the popcntb, popcntw, and popcntd instructions.
Tested for correctness against the popcnt{b,w,d} instructions on ppc64le.
Signed-off-by: Matt Brown
---
v4:
- change ifdef macro from __powerpc64__ to CONFIG_PPC64
- slight optimisations
(now
This adds emulation for the bpermd instruction.
Tested for correctness against the bpermd instruction on ppc64le.
Signed-off-by: Matt Brown
---
v4:
- change ifdef macro from __powerpc64__ to CONFIG_PPC64
v2:
- fixed opcode
- added ifdef tags to do_bpermd func
This adds emulation for the prtyw and prtyd instructions.
Tested for logical correctness against the prtyw and prtyd instructions
on ppc64le.
Signed-off-by: Matt Brown
---
v4:
- use simpler xor method
v3:
- optimised using the Giles-Miller method of side-ways addition
v2
This adds emulation for the isel instruction.
Tested for correctness against the isel instruction and its extended
mnemonics (lt, gt, eq) on ppc64le.
Signed-off-by: Matt Brown
---
v4:
- simplify if statement to ternary op
(same as isel emulation in kernel/traps.c)
v2
On Tue, Aug 1, 2017 at 10:44 PM, Segher Boessenkool
wrote:
> Hi!
>
> On Mon, Jul 31, 2017 at 10:58:22AM +1000, Matt Brown wrote:
>> @@ -1049,6 +1065,10 @@ int analyse_instr(struct instruction_op *op, struct
>> pt_regs *regs,
>> do_cmp_unsign
On Tue, Aug 1, 2017 at 10:57 PM, Segher Boessenkool
wrote:
> On Mon, Jul 31, 2017 at 07:10:15PM +1000, Michael Ellerman wrote:
>> And ___PPC_RA() is not quite right. The L field is only 2 bits wide, not
>> the 5 that ___PPC_RA() allows.
>>
>> We don't have a __PPC_L() macro, because L fields vary
function up to 10 times before
failing.
Signed-off-by: Matt Brown
---
v3:
- add repeat attempts to register the ppc_md.get_random_seed
- fixed the PPC_DARN macro
- move DARN_ERR definition
- fixed commit message
v2:
- remove repeat darn attempts
- move
On Wed, Aug 2, 2017 at 12:00 PM, Michael Ellerman wrote:
> Daniel Axtens writes:
>
>> Hi Matt,
>>
>>> --- a/lib/raid6/test/Makefile
>>> +++ b/lib/raid6/test/Makefile
>>> @@ -44,10 +44,12 @@ else ifeq ($(HAS_NEON),yes)
>>> CFLAGS += -DCONFIG_KERNEL_MODE_NEON=1
>>> else
>>> HAS_A
On Wed, Aug 2, 2017 at 10:20 AM, Daniel Axtens wrote:
> Oh, one final thing - I just realised there's a .gitignore file in
> lib/raid6/.gitignore that needs to be updated to include the vpermxor
> generated files. That should be part of this patch.
>
Oh, I managed to miss that!
I'll add that and
: vpermxor8 gen() 26279 MB/s
Signed-off-by: Matt Brown
Reviewed-by: Daniel Axtens
---
v6:
- added vpermxor files to .gitignore
- fixup whitespace
- added vpermxor objs to test/Makefile
v5:
- moved altivec.uc fix into other patch in series
---
include/linux/raid/pq.h
.
Signed-off-by: Matt Brown
---
v6:
- remove vpermxor objs from this patch
v5:
- moved altivec.uc fix into this patch
---
lib/raid6/altivec.uc| 3 +++
lib/raid6/test/Makefile | 5 +++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/lib/raid6/altivec.uc b/lib/raid6
On Sat, Aug 5, 2017 at 3:06 AM, Tyrel Datwyler
wrote:
> On 08/03/2017 06:12 PM, Matt Brown wrote:
>> This adds the powernv_get_random_darn function which utilises the darn
>> instruction, introduced in POWER9. The powernv_get_random_darn function
>> is used as the ppc_md.
On Wed, Aug 9, 2017 at 11:26 PM, Michael Ellerman wrote:
> Matt Brown writes:
>
>> This patch uses the vpermxor instruction to optimise the raid6 Q syndrome.
>> This instruction was made available with POWER8, ISA version 2.07.
>> It allows for both vperm and vxor inst
59 matches
Mail list logo