diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index c1d452f4f1ce80f9df16a39fc399d1c87dd9f6e3..b9b20be8cbf17b3de03ea941cb56f0f757f15c0b 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -81,7 +81,8 @@ class Petsc(Package):
             multi=False)
     variant('suite-sparse', default=False,
             description='Activates support for SuiteSparse')
-
+    variant('knl', default=False,
+            description='Build for KNL')
     variant('X', default=False,
             description='Activate X support')
 
@@ -225,6 +226,9 @@ def install(self, spec, prefix):
             '--with-blas-lapack-lib=%s' % lapack_blas.joined()
         ])
 
+        if '+knl' in spec:
+            options.append('--with-avx-512-kernels')
+            options.append('--with-memalign=64')
         if '+X' in spec:
             options.append('--with-x=1')
         else: