On 2/16/22 16:27, dust.li wrote:
On Wed, Feb 16, 2022 at 02:58:32PM +0100, Stefan Raspl wrote:
On 2/16/22 04:49, Dust Li wrote:
diff --git a/net/smc/smc_tx.c b/net/smc/smc_tx.c
index 5df3940d4543..bc737ac79805 100644
--- a/net/smc/smc_tx.c
+++ b/net/smc/smc_tx.c
@@ -31,6 +31,7 @@
#include "smc_tracepoint.h"
#define SMC_TX_WORK_DELAY 0
+#define SMC_DEFAULT_AUTOCORK_SIZE (64 * 1024)
Probably a matter of taste, but why not use hex here?
Yeah, I have no option on this, I will change it in the next version.
But I think it should have no real difference since the compiler
should do the calculation.
Agreed - this is just to make it a tiny bit easier to digest.
Are there any fixed plans to make SMC_DEFAULT_AUTOCORK dynamic...? 'cause
otherwise we could simply eliminate this parameter, and use the define within
smc_should_autocork() instead.
Yes! Actually I'd like it to be dynamic variable too...
I didn't do it because I also want to add a control switch for the autocork
feature just like TCP. In that case I need to add 2 variables here.
But I found adding dynamic variables using netlink would introduce a lot of
redundant code and may even bring ABI compatibility issues in the future, as
I mentioned here:
https://lore.kernel.org/netdev/20220216114618.GA39286@xxxxxxxxxxxxxxxxx/T/#mecfcd3f8c816d07dbe35e4748d17008331c89523
I'm not sure that's the right way to do it. In this case, I prefer using
sysctl which I think would be easier, but I would like to listen to your advice.
Extending the Netlink interface should be possible without breaking the API -
we'd be adding further variables, not modifying or removing existing ones.
Conceptually, Netlink is the way to go for any userspace interaction with SMC,
which includes anything config-related.
Now we understand that cloud workloads are a bit different, and the desire to be
able to modify the environment of a container while leaving the container image
unmodified is understandable. But then again, enabling the base image would be
the cloud way to address this. The question to us is: How do other parts of the
kernel address this?
Ciao,
Stefan