diff for duplicates of <1504359756.4728.7.camel@neuling.org> diff --git a/a/1.txt b/N1/1.txt index df420ac..087d200 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,36 +1,49 @@ > > > +static int nx842_powernv_crypto_init_vas(struct crypto_tfm *tfm) > > > +{ -> > > + struct nx842_crypto_ctx *ctx = crypto_tfm_ctx(tfm); -> > > + struct nx842_workmem *wmem; -> > > + struct nx842_coproc *coproc; -> > > + int ret; +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct nx842_crypto_ctx *c= +tx =3D crypto_tfm_ctx(tfm); +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct nx842_workmem *wmem= +; +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct nx842_coproc *copro= +c; +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0int ret; > > > + -> > > + ret = nx842_crypto_init(tfm, &nx842_powernv_driver); +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ret =3D nx842_crypto_init(= +tfm, &nx842_powernv_driver); > > > + -> > > + if (ret) -> > > + return ret; +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0if (ret) +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0=C2=A0=C2=A0=C2=A0return ret; > > > + -> > > + wmem = PTR_ALIGN((struct nx842_workmem *)ctx->wmem, +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0wmem =3D PTR_ALIGN((struct= + nx842_workmem *)ctx->wmem, > > > WORKMEM_ALIGN); -> > > + coproc = per_cpu(coproc_inst, smp_processor_id()); -> > -> > this is wrong. the crypto transform init function is not guaranteed -> > to be called by the same processor that later uses it. Just because +> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0coproc =3D per_cpu(coproc_= +inst, smp_processor_id()); +> >=20 +> > this is wrong.=C2=A0=C2=A0the crypto transform init function is not gua= +ranteed +> > to be called by the same processor that later uses it.=C2=A0=C2=A0Just = +because > > that happens to be how zswap operates doesn't guarantee other crypto > > users will do the same. -> -> Dan, Sorry missed this comment. -> -> Right, The actual crypto request can be executed on other processor than the -> CPU when the init is executed. The main goal is open send window on the NX -> engine which is on the same chip for the corresponding CPU. So we are OK if +>=20 +> Dan, Sorry missed this comment.=C2=A0 +>=20 +> Right, The actual crypto request can be executed on other processor than = +the +> CPU when the init is executed. The main goal is open send window on the N= +X +> engine which is on the same chip for the corresponding CPU. So we are OK = +if > the request is scheduled on other CPU as long as it belongs to same chip. -> Otherwise in the worst case we will end up using remote NX. +> Otherwise in the worst case we will end up using remote NX.=C2=A0=C2=A0 -You want the NX to be close to the requester CPU, but probably more importantly -you want the NX close to the memory it's going to be operating on. +You want the NX to be close to the requester CPU, but probably more importa= +ntly +you want the NX close to the memory it's going to be operating on.=C2=A0 Preferably they would all be on the same node. -Mikey +Mikey=20 diff --git a/a/content_digest b/N1/content_digest index 149a0eb..d9aee08 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -17,38 +17,51 @@ "\n" "> > > +static int nx842_powernv_crypto_init_vas(struct crypto_tfm *tfm)\n" "> > > +{\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct nx842_crypto_ctx *ctx = crypto_tfm_ctx(tfm);\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct nx842_workmem *wmem;\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct nx842_coproc *coproc;\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240int ret;\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct nx842_crypto_ctx *c=\n" + "tx =3D crypto_tfm_ctx(tfm);\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct nx842_workmem *wmem=\n" + ";\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct nx842_coproc *copro=\n" + "c;\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0int ret;\n" "> > > +\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = nx842_crypto_init(tfm, &nx842_powernv_driver);\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ret =3D nx842_crypto_init(=\n" + "tfm, &nx842_powernv_driver);\n" "> > > +\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (ret)\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0if (ret)\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0=C2=A0=C2=A0=C2=A0return ret;\n" "> > > +\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240wmem = PTR_ALIGN((struct nx842_workmem *)ctx->wmem,\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0wmem =3D PTR_ALIGN((struct=\n" + " nx842_workmem *)ctx->wmem,\n" "> > > WORKMEM_ALIGN);\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240coproc = per_cpu(coproc_inst, smp_processor_id());\n" - "> > \n" - "> > this is wrong.\302\240\302\240the crypto transform init function is not guaranteed\n" - "> > to be called by the same processor that later uses it.\302\240\302\240Just because\n" + "> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0coproc =3D per_cpu(coproc_=\n" + "inst, smp_processor_id());\n" + "> >=20\n" + "> > this is wrong.=C2=A0=C2=A0the crypto transform init function is not gua=\n" + "ranteed\n" + "> > to be called by the same processor that later uses it.=C2=A0=C2=A0Just =\n" + "because\n" "> > that happens to be how zswap operates doesn't guarantee other crypto\n" "> > users will do the same.\n" - "> \n" - "> Dan, Sorry missed this comment.\302\240\n" - "> \n" - "> Right, The actual crypto request can be executed on other processor than the\n" - "> CPU when the init is executed. The main goal is open send window on the NX\n" - "> engine which is on the same chip for the corresponding CPU. So we are OK if\n" + ">=20\n" + "> Dan, Sorry missed this comment.=C2=A0\n" + ">=20\n" + "> Right, The actual crypto request can be executed on other processor than =\n" + "the\n" + "> CPU when the init is executed. The main goal is open send window on the N=\n" + "X\n" + "> engine which is on the same chip for the corresponding CPU. So we are OK =\n" + "if\n" "> the request is scheduled on other CPU as long as it belongs to same chip.\n" - "> Otherwise in the worst case we will end up using remote NX.\302\240\302\240\n" + "> Otherwise in the worst case we will end up using remote NX.=C2=A0=C2=A0\n" "\n" - "You want the NX to be close to the requester CPU, but probably more importantly\n" - "you want the NX close to the memory it's going to be operating on.\302\240\n" + "You want the NX to be close to the requester CPU, but probably more importa=\n" + "ntly\n" + "you want the NX close to the memory it's going to be operating on.=C2=A0\n" "\n" "Preferably they would all be on the same node.\n" "\n" - Mikey + Mikey=20 -0b79220419df6d2a0ebd08bd17eed5213be28e1d788db8797cee158cd5398524 +6e7c2328a52e0d9d5f557f3a5a13b538b33bbb637e52de908b5811606c935c9c
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.