On Wed, Aug 27, 2008 at 05:09:52PM +0200, Julius Volz wrote: > On Wed, Aug 27, 2008 at 9:17 AM, Simon Horman wrote: > > Here is a second round of thoughts after having gone through the whole series. > > Thanks for wading through this! > > > [PATCH RFC 06/24] IPVS: Add debug macros for v4 and v6 address output > > > > * The #defines in ip_vs_dbg_addr seem a bit aquard. > > Could it be rearanged liks this? > > > > static inline const char *ip_vs_dbg_addr(int af, char *buf, size_t buf_len, > > const union nf_inet_addr *addr, > > int *idx) > > { > > int len; > > #ifdef CONFIG_IP_VS_IPV6 > > if (af == AF_INET6) > > len = snprintf(&buf[*idx], buf_len - *idx, "[" NIP6_FMT "]", > > NIP6(addr->in6)) + 1; > > else > > #endif > > len = snprintf(&buf[*idx], buf_len - *idx, NIPQUAD_FMT, > > NIPQUAD(addr->ip)) + 1; > > > > *idx += len; > > return &buf[*idx - len]; > > } > > Yes, that looks nicer and more like the other cases! > > > * The comment "/* Only use from within IP_VS_DBG_BUF() macro */" > > should also mention usage inside IP_VS_ERR_BUF() > > Right, thanks! > > > * If IP_VS_DBG_ADDR() is used more than once inside a single > > IP_VS_DBG_BUF() or IP_VS_ERR_BUF() call, won't ip_vs_dbg_buf > > be set to the value one of the calls to IP_VS_DBG_ADDR, > > thus overwriting other calls and producing incorrect debugging > > output? > > No, the buffer can receive several strings (but it's limited in size, > so you have to be careful). An index to the current position in the > buffer is maintained in the 'idx' variable between multiple > IP_VS_DBG_ADDR calls used in the same outer macro. > > In general, I'm a bit unsure if this kind of macro magic is acceptable > style, but it was the best way I could come up with to merge > alternating v4 and v6 output without too much code duplication. Thanks, I knew I was missing something obvious. From a style point of view, I'm not sure either, but it seems like a reasonable start. Perhaps a slight enhancement would be to add a BUG_ON() to ip_vs_dbg_addr() which will trigger if ip_vs_dbg_buf will overflow. > > [PATCH RFC 15/24] IPVS: Add support for IPv6 entry output in procfs files > > > > * The netlink-aware ipvsadm code also seems to allow for dotted-quad > > representation of ipv4 addresses in proc. Is that representation used > > or planned to be used? > > Good catch! No, I wasn't even aware of that feature in the new ipvsadm > (but now I see it). I think it should be removed because it is > effectively dead code (the existing v4 proc format shouldn't be > changed). Vince, do you agree? I only noticed it from fixing up the atio() problem in ipvsadm that I posted a patch for the other day. Its not a big deal. But it would be nice to eliminate dead code. > > [PATCH RFC 17/24] IPVS: Make proc/net files output IPv6 entries > > > > * It might be cleaner to do: > > > > #ifdef CONFIG_IP_VS_IPV6 > > if (cp->af == AF_INET6) > > seq_printf ... > > else > > #endif > > seq_printf ... > > Yes, it's nicer this way around, I'll change that! > > > General > > > > * You need to reorder and or merge patches such that after each > > patch is applied the code will build and run. It is ok for > > a patch to add code which isn't used until a later patch is applied. > > Yes, I have found no nice way to achieve this yet :( At least not when > reworking the complete end result (one big patch) into smaller > patches, because there is so much interdependency and several logical > changes within the same hunks (or even lines). I might have to > manually do a step-by-step adding of the logical code features to get > this... I will try to work on that next. I realise this is a pain but unfortunately it is needed. > > * Where possible please make lines <= 80 columns wide > > Yes, I will check for that more strictly now (unless it really looks > nicer otherwise), thanks! This is less critical, but thankfully easy :-) -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html