PlatformLab / HomaModule

A Linux kernel module that implements the Homa transport protocol.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Does not build on kernel 6.0.0-rc1 (or 5.19 I think)

donaldh opened this issue · comments

This commit changes the recvmsg API to remove the nonblocking parameter:

https://lore.kernel.org/all/20220411124955.154876-1-socketcan@hartkopp.net/

The following patch resolves the build issue:

diff --git a/homa_impl.h b/homa_impl.h
index a5b0582..4a33938 100644
--- a/homa_impl.h
+++ b/homa_impl.h
@@ -2767,7 +2767,7 @@ extern void     homa_prios_changed(struct homa *homa);
 extern int      homa_proc_read_metrics(char *buffer, char **start, off_t offset,
                     int count, int *eof, void *data);
 extern int      homa_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
-                    int noblock, int flags, int *addr_len);
+                    int flags, int *addr_len);
 extern int      homa_register_interests(struct homa_interest *interest,
                     struct homa_sock *hsk, int flags, __u64 id,
                    const sockaddr_in_union *client_addr);
diff --git a/homa_plumbing.c b/homa_plumbing.c
index ae5efbd..551ca00 100644
--- a/homa_plumbing.c
+++ b/homa_plumbing.c
@@ -1148,7 +1148,7 @@ int homa_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) {
  * Return:       0 on success, otherwise a negative errno.
  */
 int homa_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
-                int nonblocking, int flags, int *addr_len) {
+                int flags, int *addr_len) {
        /* Homa doesn't support the usual read-write kernel calls; must
         * invoke operations through ioctls in order to manipulate RPC ids.
         */

I've created a linux_6.0 branch that includes this change, plus others from @NickCao in PR #21. Sorry this took so long.

BTW, if you don't mind saying, I'd be curious to know what you've been doing with Homa.